CUDA
跳转到导航
跳转到搜索
在 systemd-nspawn 中使用
映射设备文件,在 .nspawn
文件中写:
[Files]
Bind=/dev/nvidia0
Bind=/dev/nvidiactl
Bind=/dev/nvidia-modeset
Bind=/dev/nvidia-uvm
Bind=/dev/nvidia-uvm-tools
允许对设备文件的访问,在 /etc/systemd/system/systemd-nspawn@NAME.service.d/deviceallow.conf
中写:
[Service]
DeviceAllow=/dev/nvidia0 rw
DeviceAllow=/dev/nvidiactl rw
DeviceAllow=/dev/nvidia-modeset rw
DeviceAllow=/dev/nvidia-uvm rw
DeviceAllow=/dev/nvidia-uvm-tools rw
需要的库文件:
- libcuda.so 来自于 nvidia-utils
- libcudart.so 等来自于 CUDA(取决于程序)
可使用 nvidia-smi
命令来检查是否配置成功。
问题处理
从挂起恢复后 cuda runtime error 999
停止程序,并重新加载 nvidia_uvm 模块。[1]如果卸载模块失败,检查 sudo lsfd | grep /dev/nvidia-uvm
。
设备文件记录
crw-rw-rw- 1 root root 195, 0 4月 3日 14:46 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 4月 3日 14:46 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 4月 3日 14:46 /dev/nvidia-modeset
crw-rw-rw- 1 root root 504, 0 4月 3日 14:46 /dev/nvidia-uvm
crw-rw-rw- 1 root root 504, 1 4月 3日 14:46 /dev/nvidia-uvm-tools
可能的解决方案[2]:
nvidia-modprobe -c 0 -m -u