cuda程序常见异常汇总

cuda程序常见异常汇总,第1张

1. CUDA out of memory

跑cuda 程序遇到下面错误:

RuntimeError: CUDA out of memory. Tried to allocate 588.00 MiB (GPU 011.00 GiB total capacity8.97 GiB already allocated190.44 MiB free9.00 GiB reserved in total by PyTorch)

运行程序之前,使用nvidia-smi 查看显存有没有被占用,如果有被占用5M以上,可能是显存没有被释放。通过如下命令来释放显存。

linux上使用命令行,云主机可以重启电脑

fuser -k /dev/nvidia* 或者 kill $(lsof -t /dev/nvidia*)

2. 减小batch size。

3. 更换更大显存的云主机。

唉,是自己粗心大意,忘了给main函数入口了,在主机端代码中加上函数声明和主函数就行了:

//函数声明

void runTest(int argc, char** argv)

//主函数

int main(int argc, char** argv)

{

runTest(argc,argv)

CUT_EXIT(argc,argv) //退出CUDA

}

cuda中有cudaError_t这个类别,可以记录cuda错误。所有的cuda库函数,几乎都返回一个cudaError_t。

《GPU高性能编程》中使用HANDLE_ERROR宏函数,处理每个函数返回的cudaerror

static void HandleError( cudaError_t err,const char *file,int line ) {

if (err != cudaSuccess) {

printf( "%s in %s at line %d\n", cudaGetErrorString( err ), file, line )

exit( EXIT_FAILURE )

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8115925.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存