一、面对一个新的GPU卡的时候,首先要查看服务器装配的cuda的版本,可以通过nvcc -V或者是去/user/local/cuda目录去看,GPU服务器的cuda版本尽量别更改,因为GPU服务器一般是公共资源,你改了的话,别人的代码可能就跑不起来,再者更改GPU服务器的cuda版本一般需要root权限,如果自己操作不当可能会有比较严重的后果。
二、知道GPU卡的型号和gpu服务器装配的cuda版本后,开始配深度学习框架,记得下载的框架版本一定一定要和gpu服务器装配的cuda对应!!这个直接去网上查()。tensorflow我用的不太多具体自己可以百度百度,pytorch的直接去官网——链接(Previous PyTorch Versions | PyTorch),直接按照里面提供的命令行下载整套的框架,这个时候要注意pytorch里面有一个cudatoolkit(我也不太清楚这个使pytorch独有的,还是conda独有的,反正这个一般要装),一般要和gpu服务器的cuda版本对应,不对应的话编译可能会失败。
现在拿你的rtx3090举例:你的显卡rtx3090,装配cuda:11.0,在网上一查,cuda11.0可以使用pytorch1.7系列的,我们就到pytorch官网查询pytorch1.7的下载指令:
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
三、但是如果遇到代码环境要求(一般github的readme里面都有环境要求的)和自己的的gpu服务器不一致的话,一般pytorch1.X系列一般可以适配,python3.X系列一般可以适配,但是如果代码要求什么需要pytorch0.4呀,python2.1呀基本就可以放弃这个代码了。
四、后面就按照github代码的流程安装即可,之后遇到什么问题见招拆招就行了,一般的问题在该github代码的issue、百度、CSDN可能可以找到解决方法,如果找不到的推荐使用google、stackflow、代码有关插件(一般问题可能就处在这里,因为这些插件更新比较频繁,我们这次安装apex的问题占了一大半)的github的issue上面。
五、本次安装流程截图以及问题解决方法
1、安装anaconda2021版本,问题:显示UTF-8的编码问题,解决:修改.bash_profile文件
2、搭建pytorch1.7+cudatoolkit11.0的环境,并安装相关的依赖包
3、下载三个所需的插件和代码,并进行编译
问题1:编译apex失败,经过溯源,问题出在两个地方:
- 没有配置cuda11.0的环境变量
vim ~/.bashrc 添加export CUDA_HOME=/usr/local/cuda-10.0 source ~/.bashrc
- Gcc版本太低,升级gcc即可
问题2:编译apex失败。算力不匹配,添加变量解决
export TORCH_CUDA_ARCH_LIST="7.5"
问题3:编译mega.pytorch失败,由于代码是根据pytoch1.3编写的,需要对一些变量进行改变,以适应pytoch1.7版本
#ifndef AT_CHECK
#define AT_CHECK TORCH_CHECK
#endif
4、代码运行时失败,原因是之前把算力设置成75,但是rtx3090并不适配算力75,把算力设置成80,这样子apex可编译通过,代码也成功运行
算力这个问题的话,可以参考一下
或者官网: