I installed nvidia-docker
and to test my installation, I ran docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
. I get this
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 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 T2000 wi... On | 00000000:01:00.0 On | N/A |
| N/A 46C P0 10W / N/A | 2294MiB / 3911MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
The driver version and CUDA version are exactly the same as what I get when I run nvidia-smi
outside the container in my regular terminal. My understanding of why the driver version is the same is that device drivers are hardware specific, and thus aren't installed inside the container, and the reason why nvidia-docker
exists is to allow software running inside the container to talk to the device drivers. Is this correct?
My main point of confusion is why the CUDA version is reported as 11.4 from inside the container. When I launch a bash terminal inside this container and look at the CUDA installation in /usr/local
, I only see version 10.0, so why is nvidia-smi
inside the container giving me CUDA version installed on my host system?
I believe these questions display a fundamental misunderstanding either of how nvidia-smi
works, or how nvidia-docker
works, so could someone point me towards resources that might help me resolve this misunderstanding?