在我的个人电脑上运行通常很好。但是,当我试图在Docker容器中运行Unity时,我会得到一个分段错误Segmentation fault (core dumped)
。我正在使用Ubuntu20.04和一个Nvidia GTX1080,并安装了所有所需的依赖项,比如Nvidia工具包。
看一下Unity生成的日志,我的Nvidia GPU似乎没有被Vulkan检测到。
[Vulkan init] SelectPhysicalDevice requestedDeviceIndex=-1 xrDevice=(nil)
[Vulkan init] Physical Device 0xfe9930 [0]: "llvmpipe (LLVM 12.0.0, 256 bits)" deviceType=4 vendorID=10005 deviceID=0
[Vulkan init] Selected physical device (nil)
Caught fatal signal - signo:11 code:1 errno:0 addr:(nil)
通过查看vulkan-info
的输出,只检测到llvmpipe
作为物理设备。
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4198582 (1.1.182)
driverVersion = 1 (0x0001)
vendorID = 0x10005
deviceID = 0x0000
deviceType = PHYSICAL_DEVICE_TYPE_CPU
deviceName = llvmpipe (LLVM 12.0.0, 256 bits)
在我的Dockerfile中,我设置了以下Nvidia设置
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES all
并在启动容器时使用--gpus='all,"capabilities=compute,utility,graphics,display"' -e DISPLAY
。
还可以在容器中运行nvidia-smi
。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.203.03 Driver Version: 450.203.03 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:15:00.0 On | N/A |
| 12% 28C P8 18W / 250W | 644MiB / 11170MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
对解决这个问题有什么想法吗?谢谢!
发布于 2022-10-13 12:23:30
我不知道问题出在哪里,但我找到了解决办法。
现在,我不再使用ubuntu:20.04
作为基本映像,而是在我的Dockerfile中使用unityci/editor:ubuntu-2022.1.20f1-base-1
。
我在停靠器组合文件中使用以下设置来启动容器:
unity:
build:
dockerfile: unity.Dockerfile
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- ${XAUTHORITY}:${XAUTHORITY}
- $XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR
environment:
- XAUTHORITY
- DISPLAY
- XDG_RUNTIME_DIR
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
https://stackoverflow.com/questions/74025631
复制相似问题