深度学习报错 | THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp

深度学习报错 | THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp

错误定位

近日在自己的服务器上跑别人的代码时,反复出现报错:
THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp)
具体报错情况为,把张量加载到设备cuda上时报错,即无法利用gpu进行计算和训练,初步推测应为 pytorch 和 cuda 版本不匹配。
在这里插入图片描述

解决历程

  1. 如果是面对别人的代码,建议大家新开 test.py,单独测试代码能否运用
    gpu(我的结果是不行,代表原来的环境有问题),测试代码可参考如下:
import torch

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(device)
a = torch.tensor([1, 2, 3], device=device)
print(a)
  1. python的版本也很重要,大部分人建议是python3.6 - python3.7

  2. 根据本机版本安装 pytorch-gpu,可以在 bing 上直接搜索 cuda(梯子),找到 [Compute Capability, GPU semiconductors and Nvidia GPU board products]表,如下。最左侧的 Compute capability 是对应GPU的算力,不同GeForce设备对应的算力不同,设备越好算力越高。
    在这里插入图片描述

  3. 找到算力后,绿色处对应的是算力,cuda SDK 是我们能安装的 cudatoolkit ,非常重要!不同的 cudatoolkit 对tensorflow 和 pytorch 的兼容是不同的。注意,我们安装的 cudatoolkit 还要小于本地的 driver version,可以用 nvidia -smi 来查询。
    在这里插入图片描述

  4. 重要的是tensorflow的版本对应,我参考了这一篇
    https://blog.csdn.net/K1052176873/article/details/114526086

  5. pytorch 安装代码,官网上的在我的服务器上,不能安装gpu版,以下是我具体装机用到的;去掉 -c pytorch在不开全局代理的时候会更快。

conda install pytorch-gpu torchvision torchaudio cudatoolkit=11.2
  1. 最后分析结果
    别人代码里用到的是低版本的 tensorflow,无法匹配高cudatoolkit和算力,具体到pytorch其实没什么问题。
    如果要使用的话,现在的想法就是把 tensorflow 1.x 版本修改为 2.x。还看到说,nvidia把1.x版本集成到最新的算力了,具体还没尝试过。

——————
最后的建议:
1、每次重新配环境的时候,不一定要所有包重装,可以先把tensorflow和pytorch装好
2、装其他库的时候,可以按照本机的特点,写enviroment.yml,把包都集成好,能降低重复装环境,将花的时间。
3、pytorch 和 tensorflow 的版本时可能发生冲突的,我认为最明显的冲突就是 cudatoolkit,其余因素暂未知。

参考资料:
1、[最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程]
GPU装pytorch先看:9.10.14.23-28
2、CUDA-Wikipedia

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值