1.背景
主机显卡为4070ti,比较新的显卡,但是有的时候会跑比较老的代码。
比较简单的问题就是这样。sm_89
NVIDIA GeForce RTX 4070 Ti with CUDA capability sm_89 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
If you want to use the NVIDIA GeForce RTX 4070 Ti GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
再恶心一点的问题就是,模型跑在cpu训练,GPU利用率0%。
更恶心的就是各种版本不匹配的问题,cuda版本,torch版本,python版本,numpy版本。
2,原因
1.显卡算力太高
2.输入的是gpu版本的指令,但是装成了cpu版本
3.不要使用cuda的命令安装,cuda会帮你安装一些依赖环境,比如numpy包,这个包的版本可能是对的,但是你使用conda install matplotlib 命令,会把这个版本的numpy包卸载,安装另一个版本的numpy,这样的话numpy与torch版本就会不匹配。
3,解决办法
1,安装高版本cuda
无论你使用的别人的网络,它告诉你使用的cuda版本是多少,比如cuda10.9,但是4070ti一般可以装到cuda12以上,使用nVidia ——smi,检测你的显卡驱动支持的最高等级cuda,然后安装cuda。安装完成使用,nvcc——V,查看安装成功的cuda版本。
高版本cuda向下兼容。
2,安装高版本torch
无论你使用的别人的网络,它告诉你使用的torch版本是多少,你可以安装一下尝试一下,如果不行,直接安装torch1.13版本。
或者安装你的cuda支持的最高等级的torch。
高版本torch向下兼容。
3,pip安装
使用pip安装,会自动帮你安装依赖的cu117。