公司一台完全离线环境的服务器刚装了Nvidia Tesla A100 40G显卡,自己摸索着将显卡驱动在完全离线环境下安装成功,这里记录一下。
在Nvidia官网下载Centos7适配的显卡驱动,CUDA Toolkit选择的11.7,没有选择最新的,下载下来的显卡驱动为:nvidia-driver-local-repo-rhel7-515.105.01-1.0-1.x86_64.rpm
操作系统为Centos7.9.2009,下载下来的ISO名称为:CentOS-7-x86_64-DVD-2207-02.iso
安装时选择的GNOME桌面服务器,并安装了相应的开发程序,默认安装了gcc等软件包。操作系统安装完成后将CentOS-7-x86_64-DVD-2207-02.iso映像文件拷贝到了Centos7操作系统中,以作为本地镜像源。
下面的绝大部分步骤都需要root权限,所以切换到root用户进行下列操作:
mkdir /media/cdrom
mount CentOS-7-x86_64-DVD-2207-02.iso /media/cdrom
会提示已只读方式挂载了光盘。可以进到/media/cdrom看一下有没有挂载成功。
3. 设置光盘为本地yum源
cd /etc/yum.repo.d/
mkdir bak
将目前系统中所有的yum源文件备份一下,全部拷贝到bak目录中
mv * bak
将其中的CentOS-Media.repo拷贝一份出来并修改如下
cp bak/CentOS-Media.repo ./
vi CentOS-Media.repo
只修改其中的一行,将enabled=0
修改为enabled=1
即可,然后保存退出。
yum clean all
yum makecache
这里没问题的话就可以使用yum install安装相关的软件了。
5. 安装光盘中自带的依赖
yum install gcc kernel-headers kernel-devel
应该是只需要这几个吧,具体的我也忘记了,这里的比较简单,需要啥用yum装就可以了。
这里需要具体情况具体分析。我的环境缺的软件比较多,另外因为我是离线环境,所以需要把相关的依赖包下载下来再拷贝到服务器上。使用下面的命令可以实现只下载软件包而不安装:
yum install --downloadonly --downloaddir=/home/xxx/yumsofts
主要是要下载epel-release,dkms,ocl-icd,opencl-filesystem,vulkan-filesystem,egl-wayland,libvdpau
在下载时会将各个软件的依赖包一起下载下来。
在安装dkms时有个依赖是zlib,下载的是zlib-1.2.7-21.el7_9.x86_64.rpm,但系统中已经默认有了zlib-1.2.7-20,二者冲突,直接使用rpm -Uvh zlib-1.2.7-21.el7_9.x86_64
升级一下就可以了。
以上都安装好后就可以安装显卡驱动了。这个地方根据Nvidia官网提示安装就可以了
i) rpm -i nvidia-driver-local-repo-rhel7-515.105.01-1.0-1.x86_64.rpm
ii) yum clean all
iii) yum install cuda-drivers
iv) reboot
如果在安装的过程中还提示缺少依赖,按照上面的方式继续下载安装就可以了。
安装完成后,检查命令:
nvidia-smi
下载Linux版本的Anaconda3安装。
创建虚拟环境:
conda create -n gpu-torch python=3.10
conda activate gpu-torch
然后安装GPU版的pytorch,安装完成后将gpu-torch虚拟环境所在目录envs下的gpu-torch文件夹整个打包,然后拷贝到离线服务器中envs目录下,在此外解包就可以直接用了。可以使用下面的命令检查能否使用gpu
python3
import torch
print(torch.cuda.is_available())
print(torch.rand(3,3).cuda())