笔者遇到Torch not compiled with CUDA enabled 报错非常的头疼,尝试各种方法,都失败,花了三天时间终于将原因搞清楚,访问了大量的网站平台和博客,尝试都失败了,就在笔者准备全部重新装cuda和cudann的时候(现在证明装了也还是一样的不能解决问题),笔者将此分享,希望能帮助到需要帮助的可爱们。
1、查看torch.cuda.is_available() ,大概率就是这里会显示 False。表明cuda不能用。那么不能用的原因,要不就是你的cuda安装没有安好,请结合标准的cuda安装进行排查。而笔者则是因为之前有成功使用过cuda的经历,而排除此问题。可以参考此博客链接。。深度学习环境配置超详细教程【Anaconda+Pycharm+PyTorch(GPU版)+CUDA+cuDNN】-CSDN博客
2、那么接下来就要思考pytorch的问题了,pytorch能有啥问题,跟cuda相关,那大概率就是版本的匹配的问题
3、接下来就是最最关键的的,这pytorch的官网的安装命令
4、安装前按照网络上的介绍,先去命令行看看cuda版本支持的,全网80%的文章都是让你这样去查,版本
如下:
所以笔者就试着用conda 又试着用pip 安装 cuda12.4的这个版本的torch, 都不能使用,我就开始怀疑是不是torch版本的不稳定性:
接着开始尝试使用cuda12.1的torch版本,还是不行。又开始觉得是cuda12.4 这个是12.1那不能兼容。苍天啊,那么这不是一个悖论吗????!!!!!!!!!!!死胡同。。。。。。。。。
但是笔者就不是那么认输的人儿,因此笔者又开始查啊看啊验啊
终于发现大多数博客所没有搞清楚的一个版本匹配的逻辑问题!!!!!!!!!!!!!
这个时候笔者就要问各位配置环境的小可爱们,要怎么选择pytorch的版本,有些可爱们直接可能就选cuda的12.4版本的,有些可爱谨慎一些,觉得不要选那么新的,那就选个12.1版本的,觉得应该可以兼容(这个小逻辑是正确的),运气好的话,这样是可以通过的。根本的原因在于没有理解对,还是有尝试的成分在。。
终极解释: 以下查到的版本为显卡可以支持的最高的cuda版本。。。。并不是你的cuda的版本
在命令行输入这个 nvcc-V, 我们可以看到它安装的版本为12.0, 因此我们在选择对应的pytorch版本的时候,cuda要低于12.0,看起来就是这么简单!
也要注意优先使用conda安装,试验几次,实在不行才使用pip安装,因为conda安装的时候不匹配的其他版本包它会帮你升级,而pip安装只会考虑本身,因此安装好了可能又是一堆问题。
最后笔者总结出点儿编程的哲学,也是有点癫了:1、慕然回首,解决方案就在灯火阑珊处。 2、 弄清楚原理,思考思考思考。3、inner peace hhhhhhhhhhhhhhhhhhhhhhhhhhhh