|
|
@ -42,10 +42,13 @@ void destroyContexts(); |
|
|
|
#define safeCall(expr) safeCall_(expr, #expr, __FILE__, __LINE__) |
|
|
|
#define safeCall(expr) safeCall_(expr, #expr, __FILE__, __LINE__) |
|
|
|
inline void safeCall_(int code, const char* expr, const char* file, int line) |
|
|
|
inline void safeCall_(int code, const char* expr, const char* file, int line) |
|
|
|
{ |
|
|
|
{ |
|
|
|
cout << "CUDA driver API error: code " << code << ", expr " << expr |
|
|
|
if (code != CUDA_SUCCESS) |
|
|
|
<< ", file " << file << ", line " << line << endl; |
|
|
|
{ |
|
|
|
destroyContexts(); |
|
|
|
cout << "CUDA driver API error: code " << code << ", expr " << expr |
|
|
|
exit(-1); |
|
|
|
<< ", file " << file << ", line " << line << endl; |
|
|
|
|
|
|
|
destroyContexts(); |
|
|
|
|
|
|
|
exit(-1); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Each GPU is associated with its own context
|
|
|
|
// Each GPU is associated with its own context
|
|
|
|