一、面对一个新的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文件

gpu服务器平台搭建 组装gpu服务器_深度学习

gpu服务器平台搭建 组装gpu服务器_人工智能_02

gpu服务器平台搭建 组装gpu服务器_服务器_03

2、搭建pytorch1.7+cudatoolkit11.0的环境,并安装相关的依赖包

gpu服务器平台搭建 组装gpu服务器_人工智能_04

gpu服务器平台搭建 组装gpu服务器_深度学习_05

3、下载三个所需的插件和代码,并进行编译

gpu服务器平台搭建 组装gpu服务器_深度学习_06

gpu服务器平台搭建 组装gpu服务器_深度学习_07

gpu服务器平台搭建 组装gpu服务器_服务器_08

gpu服务器平台搭建 组装gpu服务器_gpu服务器平台搭建_09

gpu服务器平台搭建 组装gpu服务器_服务器_10

gpu服务器平台搭建 组装gpu服务器_人工智能_11

gpu服务器平台搭建 组装gpu服务器_深度学习_12

问题1:编译apex失败,经过溯源,问题出在两个地方:

gpu服务器平台搭建 组装gpu服务器_gpu服务器平台搭建_13

  • 没有配置cuda11.0的环境变量

vim ~/.bashrc   添加export CUDA_HOME=/usr/local/cuda-10.0          source  ~/.bashrc

  • Gcc版本太低,升级gcc即可

gpu服务器平台搭建 组装gpu服务器_人工智能_14

问题2:编译apex失败。算力不匹配,添加变量解决

export TORCH_CUDA_ARCH_LIST="7.5"

gpu服务器平台搭建 组装gpu服务器_深度学习_15

问题3:编译mega.pytorch失败,由于代码是根据pytoch1.3编写的,需要对一些变量进行改变,以适应pytoch1.7版本

gpu服务器平台搭建 组装gpu服务器_深度学习_16

gpu服务器平台搭建 组装gpu服务器_pytorch_17

#ifndef AT_CHECK
#define AT_CHECK TORCH_CHECK
#endif

4、代码运行时失败,原因是之前把算力设置成75,但是rtx3090并不适配算力75,把算力设置成80,这样子apex可编译通过,代码也成功运行

算力这个问题的话,可以参考一下

或者官网:

https://en.wikipedia.org/wiki/CUDA#Supported_GPUs