CUDA

来自百合仙子's Wiki
跳转到导航 跳转到搜索

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

参见

参考资料