RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pip–req-build-jh50bw28/aten/src/THC/THCBlas.cu:259
在搜索引擎查找N次,包括询问N次GPT导师都没找到能解决这个问题的方案,都在说cuda和pytorch的对应,但是我花大量的时间对cuda和pytorch对应好了之后,仍然出现了这个问题。怒肝5天后终于找到了终极解决方案,供大家参考。
跑某个对比实验需要用到pytorch1.1.0以及cuda10.0,通过docker pull到本地(显卡为RTX3090)一个cuda10.0的环境,然后使用torch.version.cuda()显示cuda10.0.130检验torch安装时默认的cuda版本,确保torch.version.cuda()与nvcc -V显示的版本匹配。重新配置好cuda、anaconda、python、pytorch后,运行代码,发现报错:
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不能支持低版本的cuda10.0
这是我的Driver Version:512.36
查阅下表可知,
理论上Driver Version(高版本的显卡)只要大于410.48即可以兼容低版本的cuda10.0.130,但是实际上,高版本的显卡只可与相近的cuda兼容,比如:本文中使用的电脑RTX3090与cuda11.3、cuda11.6、cuda 12.0等可以有效兼容,但是cuda10.0,想都别想。
真的是巨坑啊!!!五天时间做啥不行!全花在论证它跑不出来的路上了。。。。
原文地址:https://blog.csdn.net/weixin_43663809/article/details/133788376
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_10033.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!