diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-29 19:45:47 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-29 19:45:47 +0000 |
commit | 48e1ba3840d6611b79dc9b9779460898d46674c5 (patch) | |
tree | 8b9a5410a886f03dae4165705ac378a3934e562f /libgomp/plugin | |
parent | 789fa0b1d3071746b2a26f8d410f97b55220b2c1 (diff) | |
download | gcc-48e1ba3840d6611b79dc9b9779460898d46674c5.tar.gz |
* plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
(cuda_errlist): Delete.
(cuda_error): Reimplement.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228265 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp/plugin')
-rw-r--r-- | libgomp/plugin/plugin-nvptx.c | 83 |
1 files changed, 10 insertions, 73 deletions
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c index 0c4e1afb50c..41fd9b454eb 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -47,84 +47,21 @@ #include <unistd.h> #include <assert.h> -#define ARRAYSIZE(X) (sizeof (X) / sizeof ((X)[0])) - -static const struct -{ - CUresult r; - const char *m; -} cuda_errlist[]= -{ - { CUDA_ERROR_INVALID_VALUE, "invalid value" }, - { CUDA_ERROR_OUT_OF_MEMORY, "out of memory" }, - { CUDA_ERROR_NOT_INITIALIZED, "not initialized" }, - { CUDA_ERROR_DEINITIALIZED, "deinitialized" }, - { CUDA_ERROR_PROFILER_DISABLED, "profiler disabled" }, - { CUDA_ERROR_PROFILER_NOT_INITIALIZED, "profiler not initialized" }, - { CUDA_ERROR_PROFILER_ALREADY_STARTED, "already started" }, - { CUDA_ERROR_PROFILER_ALREADY_STOPPED, "already stopped" }, - { CUDA_ERROR_NO_DEVICE, "no device" }, - { CUDA_ERROR_INVALID_DEVICE, "invalid device" }, - { CUDA_ERROR_INVALID_IMAGE, "invalid image" }, - { CUDA_ERROR_INVALID_CONTEXT, "invalid context" }, - { CUDA_ERROR_CONTEXT_ALREADY_CURRENT, "context already current" }, - { CUDA_ERROR_MAP_FAILED, "map error" }, - { CUDA_ERROR_UNMAP_FAILED, "unmap error" }, - { CUDA_ERROR_ARRAY_IS_MAPPED, "array is mapped" }, - { CUDA_ERROR_ALREADY_MAPPED, "already mapped" }, - { CUDA_ERROR_NO_BINARY_FOR_GPU, "no binary for gpu" }, - { CUDA_ERROR_ALREADY_ACQUIRED, "already acquired" }, - { CUDA_ERROR_NOT_MAPPED, "not mapped" }, - { CUDA_ERROR_NOT_MAPPED_AS_ARRAY, "not mapped as array" }, - { CUDA_ERROR_NOT_MAPPED_AS_POINTER, "not mapped as pointer" }, - { CUDA_ERROR_ECC_UNCORRECTABLE, "ecc uncorrectable" }, - { CUDA_ERROR_UNSUPPORTED_LIMIT, "unsupported limit" }, - { CUDA_ERROR_CONTEXT_ALREADY_IN_USE, "context already in use" }, - { CUDA_ERROR_PEER_ACCESS_UNSUPPORTED, "peer access unsupported" }, - { CUDA_ERROR_INVALID_SOURCE, "invalid source" }, - { CUDA_ERROR_FILE_NOT_FOUND, "file not found" }, - { CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND, - "shared object symbol not found" }, - { CUDA_ERROR_SHARED_OBJECT_INIT_FAILED, "shared object init error" }, - { CUDA_ERROR_OPERATING_SYSTEM, "operating system" }, - { CUDA_ERROR_INVALID_HANDLE, "invalid handle" }, - { CUDA_ERROR_NOT_FOUND, "not found" }, - { CUDA_ERROR_NOT_READY, "not ready" }, - { CUDA_ERROR_LAUNCH_FAILED, "launch error" }, - { CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES, "launch out of resources" }, - { CUDA_ERROR_LAUNCH_TIMEOUT, "launch timeout" }, - { CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING, - "launch incompatibe texturing" }, - { CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED, "peer access already enabled" }, - { CUDA_ERROR_PEER_ACCESS_NOT_ENABLED, "peer access not enabled " }, - { CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE, "primary cotext active" }, - { CUDA_ERROR_CONTEXT_IS_DESTROYED, "context is destroyed" }, - { CUDA_ERROR_ASSERT, "assert" }, - { CUDA_ERROR_TOO_MANY_PEERS, "too many peers" }, - { CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED, - "host memory already registered" }, - { CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED, "host memory not registered" }, - { CUDA_ERROR_NOT_PERMITTED, "not permitted" }, - { CUDA_ERROR_NOT_SUPPORTED, "not supported" }, - { CUDA_ERROR_UNKNOWN, "unknown" } -}; - static const char * cuda_error (CUresult r) { - int i; - - for (i = 0; i < ARRAYSIZE (cuda_errlist); i++) - { - if (cuda_errlist[i].r == r) - return cuda_errlist[i].m; - } - - static char errmsg[30]; +#if CUDA_VERSION < 7000 + /* Specified in documentation and present in library from at least + 5.5. Not declared in header file prior to 7.0. */ + extern CUresult cuGetErrorString (CUresult, const char **); +#endif + const char *desc; - snprintf (errmsg, sizeof (errmsg), "unknown error code: %d", r); + r = cuGetErrorString (r, &desc); + if (r != CUDA_SUCCESS) + desc = "unknown cuda error"; - return errmsg; + return desc; } static unsigned int instantiated_devices = 0; |