本文介绍: RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pipreq-build-jh50bw28/aten/src/THC/THCBlas.cu:259或450网上查找N次都没找到能解决这个问题的方案,怒肝5天后终于找到了终极解决方案,供大家参考。

RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pipreq-build-jh50bw28/aten/src/THC/THCBlas.cu:259

搜索引擎查找N次,包括询问N次GPT导师都没找到能解决这个问题的方案,都在说cudapytorch的对应,但是我花大量的时间cudapytorch对应好了之后,仍然出现了这个问题。怒肝5天后终于找到了终极解决方案,供大家参考。

跑某个对比实验需要用到pytorch1.1.0以及cuda10.0,通过docker pull到本地显卡RTX3090一个cuda10.0的环境然后使用torch.version.cuda()显示cuda10.0.130检验torch安装默认cuda版本,确保torch.version.cuda()与nvcc -V显示的版本匹配。重新配置cudaanacondapythonpytorch后,运行代码发现报错

RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pip-req-build-jh50bw28/aten/src/THC/THCBlas.cu:259

或者是报错

RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pip-req-build-jh50bw28/aten/src/THC/THCBlas.cu:450

发现torch.cuda.is_available()等等尝试均正常。即init初始化函数不会报错,但是运行到torch.bmm、torch.conv2d等实际操作报错

通过多次尝试发现使用torch.conv2d()报错,但是torch.nn.conv2d()不报错说明与之相联系的cuda有问题,cudnn没有问题可以正常工作

一台机器(同为RTX3090)发现仍然出现这个问题

通过多次实验,进一步验证了自己的想法。

结论:版本的RTX3090不能支持版本的cuda10.0
这是我的Driver Version:512.36
在这里插入图片描述
查阅下表可知,
在这里插入图片描述在这里插入图片描述
理论上Driver Version(高版本显卡)只要大于410.48即可以兼容低版本的cuda10.0.130,但是实际上,高版本的显卡只可与相近的cuda兼容比如本文使用电脑RTX3090与cuda11.3、cuda11.6、cuda 12.0等可以有效兼容,但是cuda10.0,想都别想。

真的是巨坑啊!!!五天时间做啥不行!全花在论证它跑不出来的路上了。。。。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注