GPU not used in Windows

My PC:
CPU: i90-9900k
GPU: NVidia 1080
Ram: 72gb
Windows 10 pro
Docker fully installed and running
ODM running in browser just fine

What I have done:

  • I have read the forum posts regarding this issue. Most deal with Linux as the environment.
    (HERE) AND (HERE) Did I miss another more pertinent post?

  • I have followed the windows instructions for updating/installing WSL (cant post link, already used my two for new user)

  • I have the nvidia/CUDA container in docker (will not start - errors out)
    (((Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy' nvidia-container-cli: initialization error: WSL environment detected but no adapters were found: unknown)))

container id (laughing_engelbart): e25d1526eecc5b133f997e5bf97292df4aee155aa20befeb694871696d0fb1b0

  • I have updated my GPU drivers, Updates WLS, and downloaded the most recent Nvicia/cuda lib for WLS (Version 11.7). I have no windows updates needed according to windows.
**+-----------------------------------------------------------------------------+**
**| NVIDIA-SMI 516.59       Driver Version: 516.59       CUDA Version: 11.7     |**
**|-------------------------------+----------------------+----------------------+**
**| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |**
**| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |**
**|                               |                      |               MIG M. |**
**|===============================+======================+======================|**
**|   0  NVIDIA GeForce ... WDDM  | 00000000:01:00.0  On |                  N/A |**
**| 22%   54C    P0    48W / 198W |    682MiB /  8192MiB |      0%      Default |**
**|                               |                      |                  N/A |**
**+-------------------------------+----------------------+----------------------+**

**+-----------------------------------------------------------------------------+**
**| Processes:                                                                  |**
**|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |**
**|        ID   ID                                                   Usage      |**
**|=============================================================================|**
**|    0   N/A  N/A       704    C+G   ...lPanel\SystemSettings.exe    N/A      |**
**|    0   N/A  N/A      3764    C+G   ...ekyb3d8bbwe\HxOutlook.exe    N/A      |**
**|    0   N/A  N/A     10340    C+G   C:\Windows\explorer.exe         N/A      |**
**|    0   N/A  N/A     11256    C+G   ...artMenuExperienceHost.exe    N/A      |**
**|    0   N/A  N/A     11740    C+G   ...5n1h2txyewy\SearchApp.exe    N/A      |**
**|    0   N/A  N/A     12348    C+G   ...5n1h2txyewy\SearchApp.exe    N/A      |**
**|    0   N/A  N/A     13740    C+G   ...y\ShellExperienceHost.exe    N/A      |**
**|    0   N/A  N/A     16420    C+G   ...Docker\Docker Desktop.exe    N/A      |**
**|    0   N/A  N/A     19472    C+G   ...2txyewy\TextInputHost.exe    N/A      |**
**|    0   N/A  N/A     21376    C+G   ...ontend\Docker Desktop.exe    N/A      |**
**+-----------------------------------------------------------------------------+**

When I open the webODM I use the command ./webodm.sh --gpu start. Nothing.

I saw on another post that I may need to add a line to the docker-compose.nodeodm.gpu.nvidia.yml that provides privilege’s. But I didn’t see how that line was added.

1 Like

Windows and cuda link I followed:

1 Like

Summarizing 2 days’ research…
tl/dr :   Container must [RUN] in server context.

— -g- —

Upon container [RUN]:

ERROR: "docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: initialization error: WSL environment detected but no adapters were found: unknown."

RESOLUTION:  Enable "Persistence Mode" per https://github.com/NVIDIA/nvidia-docker/issues/1648

FIX_FAILED:
C:\Users\[-g-]\[project_folder] 17:50:44.43> nvidia-smi -i 0 -pm ENABLED
Setting persistence mode is not supported for GPU {0} on this platform.
Treating as warning and moving on.
All done.

DOCUMENTATION:  https://docs.nvidia.com/deploy/driver-persistence/index.html#:~:text=Persistence%20Mode%20(Legacy),-Persistence%20Mode%20is&text=Persistence%20mode%20can%20be%20set,All%20done.

QUOTE:
	4.1. Supported Environments
		 • GPUs: All shipping Tesla, Quadro and GRID products

CONCLUSION:
Commodity-grade gaming hardware is not qualified to provide Docker container support.
Docker GPU support is only available on Workstation- and Server-grade product lines, by design.

Hope this can spare others wasted time & effort.

— /-g- —

2 Likes