提交 1dcc4047 authored 作者: Frederic Bastien's avatar Frederic Bastien

better error msg.

上级 cb42e890
...@@ -20,10 +20,11 @@ int _outstanding_mallocs[] = {0,0}; ...@@ -20,10 +20,11 @@ int _outstanding_mallocs[] = {0,0};
void * device_malloc(size_t size) void * device_malloc(size_t size)
{ {
void * rval=NULL; void * rval=NULL;
if (cudaSuccess != cudaMalloc(&rval, size)) cudaError_t err = cudaMalloc(&rval, size);
if (cudaSuccess != err)
{ {
fprintf(stderr, "Error allocating %li bytes of device memory.\n", (long)size); fprintf(stderr, "Error allocating %li bytes of device memory (%s).\n", (long)size, cudaGetErrorString(err));
PyErr_Format(PyExc_MemoryError, "error allocating %li bytes of device memory", (long)size); PyErr_Format(PyExc_MemoryError, "error allocating %li bytes of device memory (%s)", (long)size, cudaGetErrorString(err));
return NULL; return NULL;
} }
_outstanding_mallocs[0] += (rval != NULL); _outstanding_mallocs[0] += (rval != NULL);
...@@ -31,10 +32,11 @@ void * device_malloc(size_t size) ...@@ -31,10 +32,11 @@ void * device_malloc(size_t size)
} }
int device_free(void *ptr) int device_free(void *ptr)
{ {
if (cudaSuccess != cudaFree(ptr)) cudaError_t err = cudaFree(ptr);
if (cudaSuccess != err)
{ {
fprintf(stderr, "Error freeing device pointer %p.\n", ptr); fprintf(stderr, "Error freeing device pointer %p (%s).\n", ptr, cudaGetErrorString(err));
PyErr_Format(PyExc_MemoryError, "error freeing device pointer %p", ptr); PyErr_Format(PyExc_MemoryError, "error freeing device pointer %p (%s)", ptr, cudaGetErrorString(err));
return -1; return -1;
} }
_outstanding_mallocs[0] -= (ptr != NULL); _outstanding_mallocs[0] -= (ptr != NULL);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论