Applications not using GPU inside the container

Hi everyone,
I’ve been trying to make my GPU be utilized when using any graphical application from inside of the docker container, but with no success so far. I’ve followed the nvidia instructions from here to the letter but still failed to make progress.

My setup:

Ubuntu on the host: 20.04.6 LTS
Nvidia driver version: 525.147.05
Cuda version: 12.0
kernel version: 5.15.0-97-generic
nvidia-container-toolskit version: 1.15.0-rc.3
docker version: 24.0.4
nvidia-docker2 version: 2.14.0-1

I’ve been trying to run the container as follows:
docker run -it --rm --privileged -e DISPLAY=$DISPLAY --runtime=nvidia --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix nvidia/cuda:11.6.2-base-ubuntu20.04 bash

after which, when I run nvidia-smi I do get the expected output:

Tue Mar 12 15:10:54 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.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  NVIDIA RTX A300...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   53C    P8    13W /  80W |    552MiB /  6144MiB |     17%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

However, when I install glmark2 and run it it does not utilize the GPU at all. Moreover, after installing nvidia-settings and nvidia-prime I do not see an option to switch nvidia prime to performace mode in the nvidia settings (I should not that after switching that on my host the GPU started being utilized).

Anyone has any ideas on what is going on and what I might be doing wrong? I’d appreciate any help, running out of ideas here. Thanks in advance!

Are you running plain Docker or Docker Desktop, which starts Docker in a VM?

Hey! Plain docker, running containers directly from command line via docker run [...]

Did you solved this problem? I am having he same issue.

Hey, yes! See this

2 Likes