Hi,
I’m doing a Isaac Sim proof of technology using headless docker.
Accordingly to Isaac Sim + orbit container on A100 - Omniverse / Isaac Sim - NVIDIA Developer Forums, issue(s) will headless are known.
Regarding the GLFW initialization failure, this is actually expected since Isaac Sim’s current version doesn’t support headless operation, meaning a viable display system is required even when running without window. If you’re running it on a server, a workaround would be to use a virtual frame buffer like xvfb to trick the system into thinking it has a display.
Question1: xvfb support varies per Linux distro. Any recommendation for a xvfb rpm package which works on systemd?
The GPU environment is Photon OS 5.0 on x86_64 WSL2. Windows nvidia-smi shows up the configured GeForce RTX 4070 GPU. The setup works flawlessly e.g. for LLM purposes.
For Isaac Sim runheadless.websocket.sh is used as entrypoint.
docker pull nvcr.io/nvidia/isaac-sim:2023.1.1
docker run --name isaac-sim --entrypoint runheadless.websocket.sh -it --gpus all -e "ACCEPT_EULA=Y" --rm --network=host -e "PRIVACY_CONSENT=Y" nvcr.io/nvidia/isaac-sim:2023.1.1
The startup fails because carb.windowing.plugins-1.0.0’ initialization fails.
Question 2: Beside xvfb, are there any further challenges to be expected?
[0.881s] [ext: omni.gpu_foundation-0.0.0] startup
[0.895s] [ext: omni.rtx.shadercache.vulkan-1.0.0] startup
[0.898s] [ext: carb.windowing.plugins-1.0.0] startup
2024-01-08 21:48:38 [871ms] [Warning] [carb.windowing-glfw.plugin] GLFW initialization failed.
2024-01-08 21:48:38 [872ms] [Warning] [carb] Failed to startup plugin carb.windowing-glfw.plugin (interfaces: [carb::windowing::IGLContext v1.0],[carb::windowing::IWindowing v1.4]) (impl: carb.windowing-glfw.plugin)
[0.899s] [ext: omni.kit.renderer.init-0.0.0] startup
2024-01-08 21:48:38 [878ms] [Warning] [omni.platforminfo.plugin] failed to open the default display. Can't verify X Server version.
2024-01-08 21:48:38 [885ms] [Error] [carb.graphics-vulkan.plugin] VkResult: ERROR_INCOMPATIBLE_DRIVER
2024-01-08 21:48:38 [885ms] [Error] [carb.graphics-vulkan.plugin] vkCreateInstance failed. Vulkan 1.1 is not supported, or your driver requires an update.
2024-01-08 21:48:38 [885ms] [Error] [gpu.foundation.plugin] carb::graphics::createInstance failed.
2024-01-08 21:48:48 [11,004ms] [Error] [carb.launcher.plugin] [parent]: timed out waiting for the child process 46 to exec {errno = -1/Unknown error -1}
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] failed to fork the child process {errno = -1/Unknown error -1, lastErrno = 11/Resource temporarily unavailable}
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] launch descriptor for '/usr/bin/nvidia-smi' (1 arguments)
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] cmd: /usr/bin/nvidia-smi
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] onReadStdout = 0x7f748ee11ee0
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] onReadStderr = 0x7f748ee11ee0
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] readStdoutContext = 0x7f75101f9a90
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] readStderrContext = 0x7f75101f9a50
2024-01-08 21:48:48 [11,005ms] [Error] [carb.launcher.plugin] interpreter = 'bash'
2024-01-08 21:48:48 [11,005ms] [Warning] [carb.launcher.plugin] failed to launch the new process.
2024-01-08 21:48:48 [11,005ms] [Warning] [gpu.foundation.plugin] Process '/usr/bin/nvidia-smi': not launched.
2024-01-08 21:48:48 [11,005ms] [Warning] [gpu.foundation.plugin] nvidia-smi output not available.
2024-01-08 21:48:48 [11,011ms] [Error] [carb.graphics-vulkan.plugin] VkResult: ERROR_INCOMPATIBLE_DRIVER
2024-01-08 21:48:48 [11,011ms] [Error] [carb.graphics-vulkan.plugin] vkCreateInstance failed. Vulkan 1.1 is not supported, or your driver requires an update.
2024-01-08 21:48:48 [11,011ms] [Error] [gpu.foundation.plugin] carb::graphics::createInstance failed.
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] [parent]: timed out waiting for the child process 47 to exec {errno = -1/Unknown error -1}
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] failed to fork the child process {errno = -1/Unknown error -1, lastErrno = 11/Resource temporarily unavailable}
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] launch descriptor for '/usr/bin/nvidia-smi' (1 arguments)
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] cmd: /usr/bin/nvidia-smi
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] onReadStdout = 0x7f748ee11ee0
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] onReadStderr = 0x7f748ee11ee0
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] readStdoutContext = 0x7f751bfffa90
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] readStderrContext = 0x7f751bfffa50
2024-01-08 21:48:58 [21,155ms] [Error] [carb.launcher.plugin] interpreter = 'bash'
2024-01-08 21:48:58 [21,155ms] [Warning] [carb.launcher.plugin] failed to launch the new process.
2024-01-08 21:48:58 [21,155ms] [Warning] [gpu.foundation.plugin] Process '/usr/bin/nvidia-smi': not launched.
2024-01-08 21:48:58 [21,155ms] [Warning] [gpu.foundation.plugin] nvidia-smi output not available.
2024-01-08 21:48:58 [21,156ms] [Error] [omni.gpu_foundation_factory.plugin] Failed to create any GPU devices, including an attempt with compatibility mode.
nvidia-smi works flawlessly in WSL2. Configuring sudo ln -sf /mnt/c/Drivers/Nvidia_GFX/Display.Driver/nvidia-smi /usr/bin/nvidia-smi didn’t help to get detected during carb.windowing.plugins-1.0.0 startup phase.
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
root@yourpc:/isaac-sim# /usr/bin/nvidia-smi
Mon Jan 8 20:49:56 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.36 Driver Version: 546.33 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce RTX 4070 ... On | 00000000:01:00.0 Off | N/A |
| N/A 49C P8 1W / 55W | 121MiB / 8188MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
edited:
For Xvfb testing purposes, I’m using a few Fedora bits.
sudo tdnf install -y pixman libxkbcommon libxkbcommon-x11 libxt audit libunwind libxfont2 libglvnd-glx
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/xkbcomp/1.4.6/7.eln133/x86_64/xkbcomp-1.4.6-7.eln133.x86_64.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/libxkbfile/1.1.2/1.eln133/x86_64/libxkbfile-1.1.2-1.eln133.x86_64.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/xkeyboard-config/2.40/2.eln133/noarch/xkeyboard-config-2.40-2.eln133.noarch.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/xorg-x11-server/1.20.14/26.fc38/x86_64/xorg-x11-server-Xvfb-1.20.14-26.fc38.x86_64.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/libXmu/1.1.4/1.fc38/x86_64/libXmu-1.1.4-1.fc38.x86_64.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/xorg-x11-xauth/1.1.1/2.fc36/x86_64/xorg-x11-xauth-1.1.1-2.fc36.x86_64.rpm
curl -J -L -O https://kojipkgs.fedoraproject.org//packages/mesa/22.1.7/1.fc36/x86_64/mesa-libglapi-22.1.7-1.fc36.x86_64.rpm
sudo rpm -ivh libxkbfile-1.1.2-1.eln133.x86_64.rpm
sudo rpm -ivh xkbcomp-1.4.6-7.eln133.x86_64.rpm
sudo rpm -ivh xkeyboard-config-2.40-2.eln133.noarch.rpm
sudo rpm -ivh xorg-x11-server-common-1.20.14-26.fc38.x86_64.rpm
sudo rpm -ivh libXmu-1.1.4-1.fc38.x86_64.rpm
sudo rpm -ivh xorg-x11-xauth-1.1.1-2.fc36.x86_64.rpm
sudo rpm -ivh mesa-libglapi-22.1.7-1.fc36.x86_64.rpm
sudo rpm -ivh xorg-x11-server-Xvfb-1.20.14-1.fc36.x86_64.rpm
/bin/Xvfb --help
After a few retries with /bin/Xvfb :99 -ac &, export DISPLAY=:99 and docker [...] -e DISPLAY=$DISPLAY [...] I think the limitation comes from carb.windowing-glfw.plugin.
This warning appears first.
[Warning] [carb.windowing-glfw.plugin] GLFW initialization failed.
The implemented version from GitHub - glfw/glfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input might be outdated.