У меня есть сервер ubuntu 20.04 с установленными и запущенными драйверами nvidia. . Сервер безголовый. Если я запускаю nvidia-smi
на хост-машине, я получаю
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.38 Driver Version: 455.38 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| 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 TITAN X (Pascal) Off | 00000000:01:00.0 Off | N/A |
| 23% 35C P8 16W / 250W | 51MiB / 12192MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 963 G /usr/lib/xorg/Xorg 49MiB |
+-----------------------------------------------------------------------------+
, а если я запускаю glxgears -display 0
, я могу через nvidia-smi, что графический процессор работает. Большой! Теперь я хочу сделать то же самое на докере! В качестве примера я буду использовать стандартный образ nvidia-docker:
sudo docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY =: 0 --rm --gpus all --entrypoint / bin / bash -it nvidia / cuda: 11.0-base
в контейнере докеров, я получаю glxgears:
apt update apt install mesa-utils -y
Однако, nvidia-smi здесь выглядит не так хорошо:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.38 Driver Version: 455.38 CUDA Version: 11.1 |
|-------------------------------+----------------------+----------------------+
| 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 TITAN X (Pascal) Off | 00000000:01:00.0 Off | N/A |
| 23% 34C P8 16W / 250W | 51MiB / 12192MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
А на самом деле glxgears
не работает:
root@75776a0b57b1:/# glxgears -display :0
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 43
Current serial number in output stream: 42
что я делаю не так?
Вы можете использовать образ nvidia/cudagl:11.0-base
вместо nvidia/cuda:11.0-base
, чтобы использовать opengl от NVIDIA. вспомогательные библиотеки.