I installed nvidia-docker and opendronemap/nodeodm:gpu, and checked if a GPU is visible to containers:
[email protected]:~$ docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
Unable to find image 'nvidia/cuda:10.0-base' locally
10.0-base: Pulling from nvidia/cuda
25fa05cd42bd: Pull complete
2d6e353a95ec: Pull complete
df0051b6f25d: Pull complete
ad1e3e71b0c0: Pull complete
d26e14de793e: Pull complete
Digest: sha256:2f608ac9f6c6a9abb34112ccd85058877f669d4c976d7e3fc1c7cafcf5ef7dff
Status: Downloaded newer image for nvidia/cuda:10.0-base
Mon Aug 29 20:44:18 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.129.06 Driver Version: 470.129.06 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| 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 Quadro M1000M On | 00000000:01:00.0 Off | N/A |
| N/A 40C P8 N/A / N/A | 5MiB / 2002MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
When I start WebODM with webodm.sh start --gpu, the following output is written:
[email protected]:~/Downloads/WebODM$ ./webodm.sh start --gpu
01:00.0 VGA compatible controller: NVIDIA Corporation GM107GLM [Quadro M1000M] (rev a2)
01:00.1 Audio device: NVIDIA Corporation GM107 High Definition Audio Controller [GeForce 940MX] (rev a1)
GPU_NVIDIA has been found
Checking for docker... OK
Checking for docker-compose... OK
Starting WebODM...
Using the following environment:
================================
Host: localhost
Port: 8000
Media directory: appmedia
SSL: NO
SSL key:
SSL certificate:
SSL insecure port redirect: 80
Celery Broker: redis://broker
Default Nodes: 1
================================
Make sure to issue a ./webodm.sh down if you decide to change the environment.
docker-compose -f docker-compose.yml -f docker-compose.nodeodm.gpu.nvidia.yml up --scale node-odm=1
Starting db ... done
Starting broker ... done
Starting webodm_node-odm_1 ... done
Starting worker ... done
Starting webapp ... done
Attaching to broker, db, webodm_node-odm_1, worker, webapp
When I run a task and monitor using nvidia-smi, I can not observe any usage of the GPU. This might be that the containers GPU usage is hidden to the host system?