Closed myml closed 1 year ago
处理器:AMD 5600G 显卡:Tesla P40 主板:ASUS TUF B450M-PLUS GAMING
PVE版本:7.2-3 LXC容器镜像:debian-11-standard_11.6-1_amd64
注释 pve 企业订阅源,添加非订阅源
# /etc/apt/sources.list.d/pve-enterprise.list # deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
执行 apt update && apt install build-essential pve-headers-$(uname -r)
apt update && apt install build-essential pve-headers-$(uname -r)
到 https://www.nvidia.com/download/index.aspx 下载显卡对应的驱动
执行chmod +x NVIDIA-Linux-x86_64-460.106.00.run && ./NVIDIA-Linux-x86_64-460.106.00.run
chmod +x NVIDIA-Linux-x86_64-460.106.00.run && ./NVIDIA-Linux-x86_64-460.106.00.run
在安装过程中,会生成自动禁用 nouveau 驱动的配置文件,选 yes
安装完成后添加一个rules文件
# /etc/udev/rules.d/70-nvidia.rules # Create /nvidia0, /dev/nvidia1 … and /nvidiactl when nvidia module is loaded KERNEL=="nvidia", RUN+="/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 666 /dev/nvidia*'" # Create the CUDA node when nvidia_uvm CUDA module is loaded KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*'"
重启宿主机,执行 nvidia-smi 测试驱动是否正常工作
nvidia-smi
在宿主机执行 ls -l /dev/nvidia* 查看设备号
ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 Mar 19 21:09 /dev/nvidia0 crw-rw-rw- 1 root root 195, 255 Mar 19 21:09 /dev/nvidiactl crw-rw-rw- 1 root root 506, 0 Mar 19 21:09 /dev/nvidia-uvm crw-rw-rw- 1 root root 506, 1 Mar 19 21:09 /dev/nvidia-uvm-tools /dev/nvidia-caps: total 0 cr-------- 1 root root 235, 1 Mar 19 21:09 nvidia-cap1 cr--r--r-- 1 root root 235, 2 Mar 19 21:09 nvidia-cap2
其中 195、506、235就是设备号,需要把设备号写到 lxc 容器的配置文件 /etc/pve/lxc/103.conf (103 是容器 id,要改成你自己的容器 id) 并添加设备挂载,如:
/etc/pve/lxc/103.conf
lxc.cgroup.devices.allow: c 195:* rwm lxc.cgroup.devices.allow: c 506:* rwm lxc.cgroup.devices.allow: c 235:* rwm lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-caps/nvidia-cap1 none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-caps/nvidia-cap2 none bind,optional,create=file
启动容器并在容器里再次安装驱动 ./NVIDIA-Linux-x86_64-460.106.00.run --no-kernel-module 容器不需要也无法安装内核模块,所以在安装时加 --no-kernel-module 参数,安装完毕后执行 nvidia-smi 测试是否正常
./NVIDIA-Linux-x86_64-460.106.00.run --no-kernel-module
--no-kernel-module
到 https://docs.conda.io/en/latest/miniconda.html 下载最新版 miniconda ,并在容器中安装 chmod +x Miniconda3-py39_23.1.0-1-Linux-x86_64.sh && ./Miniconda3-py39_23.1.0-1-Linux-x86_64.sh。
chmod +x Miniconda3-py39_23.1.0-1-Linux-x86_64.sh && ./Miniconda3-py39_23.1.0-1-Linux-x86_64.sh
安装完成后 执行 conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia 安装 pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
可提前配置https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/镜像加速下载
安装完毕后,执行 python -c 'import torch; print(torch.cuda.is_available())' 测试,如果打印 True 表示安装成功并且支持 cuda 加速。
python -c 'import torch; print(torch.cuda.is_available())'
https://myml.dev/posts/pve-lxc-cuda-pytorch/
处理器:AMD 5600G 显卡:Tesla P40 主板:ASUS TUF B450M-PLUS GAMING
PVE版本:7.2-3 LXC容器镜像:debian-11-standard_11.6-1_amd64
宿主机安装驱动
注释 pve 企业订阅源,添加非订阅源
执行
apt update && apt install build-essential pve-headers-$(uname -r)
到 https://www.nvidia.com/download/index.aspx 下载显卡对应的驱动
执行
chmod +x NVIDIA-Linux-x86_64-460.106.00.run && ./NVIDIA-Linux-x86_64-460.106.00.run
在安装过程中,会生成自动禁用 nouveau 驱动的配置文件,选 yes
安装完成后添加一个rules文件
重启宿主机,执行
nvidia-smi
测试驱动是否正常工作lxc 容器配置
在宿主机执行
ls -l /dev/nvidia*
查看设备号其中 195、506、235就是设备号,需要把设备号写到 lxc 容器的配置文件
/etc/pve/lxc/103.conf
(103 是容器 id,要改成你自己的容器 id) 并添加设备挂载,如:启动容器并在容器里再次安装驱动
./NVIDIA-Linux-x86_64-460.106.00.run --no-kernel-module
容器不需要也无法安装内核模块,所以在安装时加--no-kernel-module
参数,安装完毕后执行nvidia-smi
测试是否正常lxc 容器安装 pytorch
到 https://docs.conda.io/en/latest/miniconda.html 下载最新版 miniconda ,并在容器中安装
chmod +x Miniconda3-py39_23.1.0-1-Linux-x86_64.sh && ./Miniconda3-py39_23.1.0-1-Linux-x86_64.sh
。安装完成后 执行
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
安装 pytorch可提前配置https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/镜像加速下载
安装完毕后,执行
python -c 'import torch; print(torch.cuda.is_available())'
测试,如果打印 True 表示安装成功并且支持 cuda 加速。