Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_Cuda / src / core / cudatools / cpp / cudaTools.cpp
diff --git a/WCudaMSE/BilatTools_Cuda/src/core/cudatools/cpp/cudaTools.cpp b/WCudaMSE/BilatTools_Cuda/src/core/cudatools/cpp/cudaTools.cpp
new file mode 100755 (executable)
index 0000000..c100173
--- /dev/null
@@ -0,0 +1,101 @@
+#include <iostream>\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string>\r
+\r
+#include "cudaTools.h"\r
+#include "StringTools.h"\r
+\r
+using std::string;\r
+using std::cout;\r
+using std::cerr;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Implementation                                  *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+/**\r
+ * Cuda\r
+ */\r
+void cudaHandleError(cudaError_t error, const char *file, int line)\r
+    {\r
+    if (error != cudaSuccess)\r
+       {\r
+       cerr << endl << "[CUDA ERROR] : " << cudaGetErrorString(error) << " in " << file << " at ligne " << line << endl;\r
+       exit (EXIT_FAILURE);\r
+       }\r
+    }\r
+\r
+/**\r
+ * Curand\r
+ */\r
+void cudaHandleError(curandStatus_t statut, const char *file, int line)\r
+    {\r
+    if (statut != CURAND_STATUS_SUCCESS)\r
+       {\r
+       cerr << endl << "[CURAND ERROR] : " << statut << " in " << file << " at ligne " << line << endl;\r
+       exit (EXIT_FAILURE);\r
+       }\r
+    }\r
+\r
+/**\r
+ * Cublas\r
+ */\r
+void cudaHandleError(cublasStatus_t cublasStatus, const char *file, int line)\r
+    {\r
+\r
+    if (cublasStatus != CUBLAS_STATUS_SUCCESS)\r
+       {\r
+       switch (cublasStatus)\r
+           {\r
+           case CUBLAS_STATUS_INVALID_VALUE:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_INVALID_VALUE " << " in " << file << " at line " << line << endl;\r
+               break;\r
+           case CUBLAS_STATUS_NOT_INITIALIZED:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_NOT_INITIALIZED " << " in " << file << " at line " << line << endl;\r
+               break;\r
+           case CUBLAS_STATUS_INTERNAL_ERROR:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_INTERNAL_ERROR " << " in " << file << " at line " << line << endl;\r
+               break;\r
+           case CUBLAS_STATUS_MAPPING_ERROR:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_MAPPING_ERROR " << " in " << file << " at line " << line << endl;\r
+               break;\r
+\r
+           case CUBLAS_STATUS_ALLOC_FAILED:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_ALLOC_FAILED " << " in " << file << " at line " << line << endl;\r
+               break;\r
+           case CUBLAS_STATUS_ARCH_MISMATCH:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_ARCH_MISMATCH" << " in " << file << " at line " << line << endl;\r
+               break;\r
+           case CUBLAS_STATUS_EXECUTION_FAILED:\r
+               cerr << endl << "[CUBLAS ERROR] : CUBLAS_STATUS_EXECUTION_FAILED" << " in " << file << " at line " << line << endl;\r
+               break;\r
+           default:\r
+               cerr << endl << "[CUBLAS ERROR] : Unknown error !" << " in " << file << " at line " << line << endl;\r
+               break;\r
+           }\r
+       exit (EXIT_FAILURE);\r
+       }\r
+    }\r
+\r
+/*--------------------------------------*\\r
+ |*            Private                 *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r