近期,尝试在家里服务中搭建一个用来跑 AI 的服务器,尝试利用 EXSI8.0 + ubuntu 搭建,因 exsi + ubuntu 无法安装最新版本 N 卡驱动,原因:安装上后,nvidia-smi 找不到设备,exsi+ubuntu 的方式行不通,所以改为 exsi+debian 的方式搭建。
假造机配置如下:
- EPYC 7302 * 48
- 基于 ESXi-8.0U2 平台
- NVIDIA GeForce RTX 3060(12G)
- 128G 内存
- Debian GNU/Linux 12 (bookworm) x86_64
RTX 3060 显卡驱动安装
紧张过程
首先配置假造机,按设置:
- 锁定全部内存
- 设置 hypervisor.cpuid.v0=FALSE
- 设置 pciPassthru0.msiEnabled=FALSE
- 设置 pciPassthru.use64bitMMIO=TRUE
- 设置 pciPassthru.64bitMMIOSizeGB=24(这个数字填写 2*GPU 显存总量。比方我的 3060 显存 12G,这里填写 24 即可)
在假造机内,首先配置 apt 源,使之包含 non-free-firmware。在 /etc/apt/source.list 中,添加 non-free-firmware,完成后应该形如:
- deb https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
复制代码 然后,
- sudo apt update
- apt search nvidia-driver
复制代码 直接利用 apt 安装驱动,会出现如下错误:
- Detected NVIDIA GPUs:
- 1b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1)
- Checking card: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
- Uh oh. Your card is not supported by any driver version up to 545.23.06.
- A newer driver may add support for your card.
- Newer driver releases may be available in backports, unstable or experimental.
复制代码 解决方案
简朴来说,需要安装开放版本的 NVIDIA 驱动而不是默认的。论坛中的回答表示应该利用 .run 文件安装,并附加参数 -m=kernel-open,我不清楚是否有可以解决这个题目的 deb 包。
在应用这个方案之前,首先需要清算之前的安装。
- sudo nvidia-uninstall
- sudo apt purge -y '^nvidia-*' '^libnvidia-*'
- sudo rm -r /var/lib/dkms/nvidia
- sudo apt -y autoremove
- sudo update-initramfs -c -k `uname -r`
- sudo update-grub2
- sudo reboot
复制代码- vim /etc/modprobe.d/blacklist-nvidia-nouveau.conf
- 添加:
- blacklist nouveau
- options nouveau modeset=0
复制代码- vim /etc/modprobe.d/nvidia.conf
- 添加:
- options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
复制代码- systemctl rebootlsmod | grep nouveau
- # 没有输出说明操纵成功
复制代码
- 然后,从 NVIDIA 驱动下载站下载 .run 格式的驱动。并实行
- sudo apt-get install gcc make g++ #安装依靠sudo chmod u+x NVIDIA-Linux-x86_64-535.154.05.run #赋予可实行权限sudo ./NVIDIA-Linux-x86_64-535.154.05.run -m=kernel-opensudo update-initramfs -u
- systemctl rebootnvidia-smi
复制代码- 1.The distribution-provided pre-install script failed! Are you sure you want to continue?
- “Yes”
- 2.Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
- “No”
- 3.Nvidia’s 32-bit compatibility libraries?
- “No”
- 4.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
- “Yes”
复制代码 如果遇到 nvidia driver 遇到 kernel source tree missing 的解决方法:
- sudo apt-get install linux-headers-$(uname -r)
- 结果告诉我没有这个包。
- 然后我运行
- sudo apt-cache search linux-headers-$(uname -r)
- 显示的头文件版本是4.19.0-6-amd64
- 而我的核心
- cat /proc/version
- 是4.19.0-5
- 因此只能升级核心
- sudo apt-get install linux-image-4.19.0-6-amd64
- 然后卸载原来的,这时候会有警告,只要选No即可
- sudo apt-get remove linux-image-4.19.0-5-amd64
- 卸载完了重启即可
复制代码 重启题目解决
RTX 3060 CUDA、CUDNN 安装
CUDA 安装
按照 NVIDIA CUDA安装文档,安装 CUDA:
- wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb
- sudo dpkg -i cuda-repo-debian12-12-3-local_12.3.2-545.23.08-1_amd64.deb
- sudo cp /var/cuda-repo-debian12-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
- sudo add-apt-repository contrib
- 如果command not found
- 执行:apt-get install software-properties-common
- sudo apt-get update
- sudo apt-get -y install cuda-toolkit-12-3
复制代码 实行完上述代码后,实行 nvcc --version 显示 command not found,则下面步调解决:
首先,查看 cuda 的 bin 目录下是否有 nvcc:
如果存在,直接将 cuda 路径加入系统路径即可:
- vim ~/.bashrc
- 进入配置文件;
- 添加以下两行:
- export PATH=/usr/local/cuda/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
复制代码 然后更新配置文件:
再次实行 nvcc –version 就可以看到相应 cuda 版本了,如下:
CUDNN 安装
在 NVIDIA CUDNN, 这里下载 deb 格式 (本文是 debian 系统),安装:
- sudo dpkg -i cudnn-local-repo-debian11-8.9.7.29_1.0-1_amd64.deb
- sudo cp /var/cudnn-local-repo-ubuntu2204-8.6.0.163/cudnn-local-FAED14DD-keyring.gpg /usr/share/keyrings/
- sudo apt-get update
- sudo apt-get install libcudnn8=8.9.7.29-1+cuda12.2 # 这里输入到=按tab补全即可,安装运行库
- sudo apt-get install libcudnn8-dev=8.9.7.29-1+cuda12.2 # 通过tab自动补全,安装developer 库
- sudo apt-get install libcudnn8-samples=8.9.7.29-1+cuda12.2 # 通过tab自动补全,安装示例和文档
复制代码 测试:
- cp -r /usr/src/cudnn_samples_v8/ $HOME
- cd ~/cudnn_samples_v8/mnistCUDNN/
- make clean && make
- # 如果提示下面截图中的错误,就执行下面语句安装freeimage3库
- sudo apt-get install libfreeimage3 libfreeimage-dev
复制代码
运行测试:
参考文章
- ESXi6.7实现直通独显(RTX 3060)给Ubuntu炼丹
- Ubuntu22.04+Nvidia驱动+Cuda11.8+cudnn8.6
- 一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路 | 京东云技术团队
- ESXi 中的 Debian 假造机安装 NVIDIA 显卡驱动
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |