nspawn 컨테이너 내에서 GPU 컴퓨팅 애플리케이션을 실행하려고 합니다. 컨테이너를 다음과 같이 구성했습니다.
/etc/systemd/nspawn/ubuntuintel.nspawn
:
argon# cat ubuntuintel.nspawn
[Exec]
Capability=CAP_SYS_ADMIN
[Files]
Bind=/dev/dri
/etc/systemd/system.control/[email protected]/50-DeviceAllow.conf
:
# This is a drop-in unit file extension, created via "systemctl set-property"
# or an equivalent operation. Do not edit.
[Service]
DeviceAllow=
DeviceAllow=/dev/net/tun rwm
DeviceAllow=char-pts rw
DeviceAllow=/dev/loop-control rw
DeviceAllow=block-loop rw
DeviceAllow=block-blkext rw
DeviceAllow=/dev/mapper/control rw
DeviceAllow=block-device-mapper rw
DeviceAllow=/dev/dri rwm
그런 다음 다음을 통해 컨테이너를 실행합니다.systemctl start [email protected]
/dev/dri 디렉터리는 컨테이너에 있지만 애플리케이션을 실행할 때 다음과 같은 일이 발생합니다.
openat(AT_FDCWD, "/dev/dri/renderD128", O_RDWR) = -1 EPERM (Operation not permitted)
컨테이너가 GPU를 사용하도록 하는 올바른 방법은 무엇입니까? 간단히 qemu + pci passthrough를 사용하는 것도 고려했지만 훨씬 무겁습니다.