最近拿到一台昇腾aarch64服务器,显卡为A100,非常难得,但是与平常配置环境不同,服务器存在三大难题:
- 由于安全控制,服务器本身不能访问外网;
- 服务器本身为ARM架构(aarch64);
- 没有管理员权限,只拿到非Root用户;
本文将在以上条件的限制下,安装CUDA+CUDNN+magma-cuda,以便能够更好地利用这款强大的硬件设备。
一、安装CUDA和cudnn
1.1、下载CUDA驱动
1.首先查看系统的cuda驱动,可以看到这里是12.3版本,所以我们要下载比其低的CUDA,推荐11.8版本。 然后输出nvcc --verison,如果是command not found说明没有CUDA驱需要安装,如果输出了一大堆型号信息且版本低于上图的CUDA 驱动版本,说明有CUDA且版本正确,就不要再安装了,跳到#二步骤。
2.进入CUDA官网,根据系统版本选择对应的runfile,注意因为是非root用户,不要用sudo的rpm安装,只能选择下载runfile用sh安装,因为其他版本需要管理员权限才行,(如果不知道机器是什么版本,可以使用uname -m查看架构)
可以使用wget下载:wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_sbsa.run
如果没有外网环境用不了wget,使用本机下载这个.run文件后,然后传到服务器,使用sh安装。
1.2、安装CUDA驱动
如果是非root用户,终端cd进入下载好.run文件的目录,使用sh安装:sh cuda_11.8.0_520.61.05_linux_sbsa.run
首先会弹出问你接不接受一个协议,输入accept: 然后回弹出安装配置: ↑↓进行上下,←→进行扩展,enter进行选择和取消,A进行扩展选项 我们取消掉Driver选项,因为机器已经安装了Driver,只安装CUDA Toolkit和CUDA documentation: 然后选择选中Options: 进入Toolkit Options: /usr这种非用户目录的选项都要去掉,我这里全去掉了,另外进入 Change Toolkit Install Path设置cuda安装到自己具有写入权限的路径 (一定要是自己的目录,提前建好文件夹,不然你安不了)
做完Done,回到Options菜单, 更改Library install path (不改不行,它会偷偷写入/var/lib) 同样设置安装到自己具有写入权限的路径 (同样一定要是自己的目录) 配置好以上两个自定义目录后,选择Done,等待片刻会出现一个summary,说明安装成功: 并且能在文件目录中看到cuda里的文件都已经安装好了:
1.3、配置环境变量
安装好后还不能使用nvcc --V,需要配置环境变量: 输入 vim ~/.bashrc
进入环境变量,进行更改:
bash
# CUDA
export PATH="/刚刚的路径/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/刚刚的路径/cuda-11.8/lib64:/刚刚的路径/cuda-11.8/mylib/lib64:$LD_LIBRARY_PATH"
路径要记得换成自己的: 添加好后,输入wq!保存,然后刷新环境变量:source ~/.profile
最后测试CUDA,输入nvcc -V
,如果显示了版本号,则恭喜大获成功:
1.4、安装cudnn
这里参考了:blog.csdn.net/YY007H/arti...
1.5、安装magma-cuda
magma-cuda主要用于大规模线性代数计算和GPU加速。
首先进入anaconda官方网站:anaconda.org/search?q=ma... 将其下载后,迁移到Anaconda安装目录的pkgs目录下(因为注conda install 缓存文件路径一般就是anaconda/pkgs),如果下载的包名是linux-64_开头的,要重命名把linux-64_去除,以包名开头,不然conda识别不到。然后使用终端cd到pkgs目录那里,输入:
bash
conda install --use-local 包名.tar.bz2
等待片刻,安装完成后输入conda list就可以看到包名了,如果看不到包名的话大概率是包名的问题,比如linux-64_magma-cuda118-2.6.1-1.tar.bz2要改成magma-cuda118-2.6.1-1.tar.bz2。
最后输入:conda list验证是否成功安装magma-cuda