@@ -231,6 +231,69 @@ Caffe::RNG& Caffe::RNG::operator=(const RNG& other) {
231231void * Caffe::RNG::generator () {
232232 return static_cast <void *>(generator_->rng ());
233233}
234+
235+ const char * cublasGetErrorString (cublasStatus_t error) {
236+ switch (error) {
237+ case CUBLAS_STATUS_SUCCESS:
238+ return " CUBLAS_STATUS_SUCCESS" ;
239+ case CUBLAS_STATUS_NOT_INITIALIZED:
240+ return " CUBLAS_STATUS_NOT_INITIALIZED" ;
241+ case CUBLAS_STATUS_ALLOC_FAILED:
242+ return " CUBLAS_STATUS_ALLOC_FAILED" ;
243+ case CUBLAS_STATUS_INVALID_VALUE:
244+ return " CUBLAS_STATUS_INVALID_VALUE" ;
245+ case CUBLAS_STATUS_ARCH_MISMATCH:
246+ return " CUBLAS_STATUS_ARCH_MISMATCH" ;
247+ case CUBLAS_STATUS_MAPPING_ERROR:
248+ return " CUBLAS_STATUS_MAPPING_ERROR" ;
249+ case CUBLAS_STATUS_EXECUTION_FAILED:
250+ return " CUBLAS_STATUS_EXECUTION_FAILED" ;
251+ case CUBLAS_STATUS_INTERNAL_ERROR:
252+ return " CUBLAS_STATUS_INTERNAL_ERROR" ;
253+ #if CUDA_VERSION >= 6000
254+ case CUBLAS_STATUS_NOT_SUPPORTED:
255+ return " CUBLAS_STATUS_NOT_SUPPORTED" ;
256+ #endif
257+ #if CUDA_VERSION >= 6050
258+ case CUBLAS_STATUS_LICENSE_ERROR:
259+ return " CUBLAS_STATUS_LICENSE_ERROR" ;
260+ #endif
261+ }
262+ return " Unknown cublas status" ;
263+ }
264+
265+ const char * curandGetErrorString (curandStatus_t error) {
266+ switch (error) {
267+ case CURAND_STATUS_SUCCESS:
268+ return " CURAND_STATUS_SUCCESS" ;
269+ case CURAND_STATUS_VERSION_MISMATCH:
270+ return " CURAND_STATUS_VERSION_MISMATCH" ;
271+ case CURAND_STATUS_NOT_INITIALIZED:
272+ return " CURAND_STATUS_NOT_INITIALIZED" ;
273+ case CURAND_STATUS_ALLOCATION_FAILED:
274+ return " CURAND_STATUS_ALLOCATION_FAILED" ;
275+ case CURAND_STATUS_TYPE_ERROR:
276+ return " CURAND_STATUS_TYPE_ERROR" ;
277+ case CURAND_STATUS_OUT_OF_RANGE:
278+ return " CURAND_STATUS_OUT_OF_RANGE" ;
279+ case CURAND_STATUS_LENGTH_NOT_MULTIPLE:
280+ return " CURAND_STATUS_LENGTH_NOT_MULTIPLE" ;
281+ case CURAND_STATUS_DOUBLE_PRECISION_REQUIRED:
282+ return " CURAND_STATUS_DOUBLE_PRECISION_REQUIRED" ;
283+ case CURAND_STATUS_LAUNCH_FAILURE:
284+ return " CURAND_STATUS_LAUNCH_FAILURE" ;
285+ case CURAND_STATUS_PREEXISTING_FAILURE:
286+ return " CURAND_STATUS_PREEXISTING_FAILURE" ;
287+ case CURAND_STATUS_INITIALIZATION_FAILED:
288+ return " CURAND_STATUS_INITIALIZATION_FAILED" ;
289+ case CURAND_STATUS_ARCH_MISMATCH:
290+ return " CURAND_STATUS_ARCH_MISMATCH" ;
291+ case CURAND_STATUS_INTERNAL_ERROR:
292+ return " CURAND_STATUS_INTERNAL_ERROR" ;
293+ }
294+ return " Unknown curand status" ;
295+ }
296+
234297#endif // CPU_ONLY
235298
236299} // namespace caffe
0 commit comments