ソースを参照

Use CUDA to translate CUDA errors into strings rather than doing it by hand.

Cédric Augonnet 15 年 前
コミット
ebe7bcc0c7
共有1 個のファイルを変更した2 個の追加86 個の削除を含む
  1. 2 86
      include/starpu-util.h

+ 2 - 86
include/starpu-util.h

@@ -160,93 +160,9 @@ STARPU_ATOMIC_SOMETHING(or, old | value)
 
 
 
-#define STARPU_CUDA_REPORT_ERROR(status) 					\
+#define STARPU_CUDA_REPORT_ERROR(status) 				\
 	do {								\
-		char *errormsg;						\
-		switch (status) {					\
-			case CUDA_SUCCESS:				\
-				errormsg = "success";			\
-				break;					\
-			case CUDA_ERROR_INVALID_VALUE:			\
-				errormsg = "invalid value";		\
-				break;					\
-			case CUDA_ERROR_OUT_OF_MEMORY:			\
-				errormsg = "out of memory";		\
-				break;					\
-			case CUDA_ERROR_NOT_INITIALIZED:		\
-				errormsg = "not initialized";		\
-				break;					\
-			case CUDA_ERROR_DEINITIALIZED:			\
-				errormsg = "deinitialized";		\
-				break;					\
-			case CUDA_ERROR_NO_DEVICE:			\
-				errormsg = "no device";			\
-				break;					\
-			case CUDA_ERROR_INVALID_DEVICE:			\
-				errormsg = "invalid device";		\
-				break;					\
-			case CUDA_ERROR_INVALID_IMAGE:			\
-				errormsg = "invalid image";		\
-				break;					\
-			case CUDA_ERROR_INVALID_CONTEXT:		\
-				errormsg = "invalid context";		\
-				break;					\
-			case CUDA_ERROR_CONTEXT_ALREADY_CURRENT:	\
-				errormsg = "context already current";	\
-				break;					\
-			case CUDA_ERROR_MAP_FAILED:			\
-				errormsg = "map failed";		\
-				break;					\
-			case CUDA_ERROR_UNMAP_FAILED:			\
-				errormsg = "unmap failed";		\
-				break;					\
-			case CUDA_ERROR_ARRAY_IS_MAPPED:		\
-				errormsg = "array is mapped";		\
-				break;					\
-			case CUDA_ERROR_ALREADY_MAPPED:			\
-				errormsg = "already mapped";		\
-				break;					\
-			case CUDA_ERROR_NO_BINARY_FOR_GPU:		\
-				errormsg = "no binary for gpu";		\
-				break;					\
-			case CUDA_ERROR_ALREADY_ACQUIRED:		\
-				errormsg = "already acquired";		\
-				break;					\
-			case CUDA_ERROR_NOT_MAPPED:			\
-				errormsg = "not mapped";		\
-				break;					\
-			case CUDA_ERROR_INVALID_SOURCE:			\
-				errormsg = "invalid source";		\
-				break;					\
-			case CUDA_ERROR_FILE_NOT_FOUND:			\
-				errormsg = "file not found";		\
-				break;					\
-			case CUDA_ERROR_INVALID_HANDLE:			\
-				errormsg = "invalid handle";		\
-				break;					\
-			case CUDA_ERROR_NOT_FOUND:			\
-				errormsg = "not found";			\
-				break;					\
-			case CUDA_ERROR_NOT_READY:			\
-				errormsg = "not ready";			\
-				break;					\
-			case CUDA_ERROR_LAUNCH_FAILED:			\
-				errormsg = "launch failed";		\
-				break;					\
-			case CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES:	\
-				errormsg = "launch out of resources";	\
-				break;					\
-			case CUDA_ERROR_LAUNCH_TIMEOUT:			\
-				errormsg = "launch timeout";		\
-				break;					\
-			case CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING:	\
-				errormsg = "launch incompatible texturing";\
-				break;					\
-			case CUDA_ERROR_UNKNOWN:			\
-			default:					\
-				errormsg = "unknown error";		\
-				break;					\
-		}							\
+		const char *errormsg = cudaGetErrorString(status);	\
 		printf("oops  in %s ... %s \n", __func__, errormsg);	\
 		assert(0);						\
 	} while (0)