CUDA 错误检查
一.纯CUDA 库
利用__FILE__ ,__LINE__这两个宏以及cudaGetErrorString()这个函数
#define CHECK(call) \ { \ const cudaError_t error=call; \ if(error!=cudaSuccess) \ { \ printf("ERROR: in File %s at Line %d\n",__FILE__,__LINE__); \ printf("ERROR Code:%d,reason:%s\n",error,cudaGetErrorString(error)); \ exit(1); \ } \ }
二. 有多种库
#define FatalError(s) do { \ std::stringstream _where, _message; \ _where << __FILE__ << ':' << __LINE__; \ _message << std::string(s) + "\n" << __FILE__ << ':' << __LINE__; \ std::cerr << _message.str() << "\nAborting...\n"; \ cudaDeviceReset(); \ exit(1); \ } while(0) #define checkCUDNN(status) do { \ std::stringstream _error; \ if (status != CUDNN_STATUS_SUCCESS) { \ _error << "CUDNN failure: " << cudnnGetErrorString(status); \ FatalError(_error.str()); \ } \ } while(0) #define checkCudaErrors(status) do { \ std::stringstream _error; \ if (status != 0) { \ _error << "Cuda failure: " << status; \ FatalError(_error.str()); \ } \ } while(0)
参考:https://raw.githubusercontent.com/tbennun/cudnn-training/master/lenet.cu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏