首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Docker容器中运行Unity时,Vulkan没有检测到GPU

在Docker容器中运行Unity时,Vulkan没有检测到GPU
EN

Stack Overflow用户
提问于 2022-10-11 09:07:24
回答 1查看 94关注 0票数 0

在我的个人电脑上运行通常很好。但是,当我试图在Docker容器中运行Unity时,我会得到一个分段错误Segmentation fault (core dumped)。我正在使用Ubuntu20.04和一个Nvidia GTX1080,并安装了所有所需的依赖项,比如Nvidia工具包。

看一下Unity生成的日志,我的Nvidia GPU似乎没有被Vulkan检测到。

代码语言:javascript
运行
复制
[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作为物理设备。

代码语言:javascript
运行
复制
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设置

代码语言:javascript
运行
复制
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES all

并在启动容器时使用--gpus='all,"capabilities=compute,utility,graphics,display"' -e DISPLAY

还可以在容器中运行nvidia-smi

代码语言:javascript
运行
复制
+-----------------------------------------------------------------------------+
| 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      |
|=============================================================================|
+-----------------------------------------------------------------------------+

对解决这个问题有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-13 12:23:30

我不知道问题出在哪里,但我找到了解决办法。

现在,我不再使用ubuntu:20.04作为基本映像,而是在我的Dockerfile中使用unityci/editor:ubuntu-2022.1.20f1-base-1

我在停靠器组合文件中使用以下设置来启动容器:

代码语言:javascript
运行
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74025631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档