概述
最近整了张 Tesla P4,由于是半高卡,索性就直接将其塞进了我的 NAS 里,试图将原来用 onnx 跑在 CPU 上的模型迁移至 GPU 上,遇到了些许问题,在此记录下。
本文地址:blog.lucien.ink/archives/534
0. 前言
由于是用于生产环境,我的所有服务(包含本次要迁移的模型)都是容器化运行的,所以我这次也是考虑用 NVIDIA Docker 2 来进行生产部署。
我的操作系统是 Debian 11 x64,运行在 i3-12100 上。
对本篇文章的读者,我在这里假定你已装好 Docker,若没有,可以参考 Docker 入门手记。
1. 环境部署
1.1 下载驱动
前往 Official Drivers | NVIDIA 下载 Tesla P4 的驱动,CUDA Toolkit 记得不要选 Any
,否则会给你一个十分旧的驱动,会影响 nvidia docker (CUDA >= 11.6) 的安装。
由于实际运行是在 docker 内,所以在稳定的前提下,宿主机的 CUDA 版本是越新越好,在这里我选择 CUDA 12.0 版本。
1.2 系统准备
1.2.1 禁用 Nouveau
这一步是必要的,因为 Nouveau 也是 NVIDIA GPU 的驱动程序,参考 nouveau - 維基百科。
- 创建文件
touch /etc/modprobe.d/blacklist-nouveau.conf
- 在文件中写入以下内容:
blacklist nouveau
options nouveau modeset=0
- 重新生成 kernel initramfs
update-initramfs -u
- 重启
reboot
1.2.2 安装编译环境
参考 Nvidia unable to find kernel source tree
apt install linux-headers-`uname -r` build-essential
1.3 安装驱动
直接 chmod +x
然后运行驱动安装程序即可,不赘述。
1.4 安装 NVIDIA Docker
据我观察,NVIDIA Docker 2 类似是 Docker 的一个插件,让原生的 Docker 可以调用 NVIDIA Driver。
1.4.1 添加源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list |
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
1.4.2 安装
apt update
apt install -y nvidia-docker2
systemctl restart docker
1.4.3 测试
docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
如果能看到 nvidia-smi
的内容,则代表安装成功了。
3. 参考文档
- Installation Guide - NVIDIA Cloud Native Technologies
最后
以上就是娇气大树为你收集整理的Debian 下 CUDA 生产环境配置笔记0. 前言1. 环境部署3. 参考文档的全部内容,希望文章能够帮你解决Debian 下 CUDA 生产环境配置笔记0. 前言1. 环境部署3. 参考文档所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复