Hello, Nvidia team,
I have an NVIDIA GeForce GTX 1080 Ti, I installed Cuda release 10.1, V10.1.105, as well as installed cudnn for Cuda 10.1, But I am facing an error. When I type “nvidia-smi”, GPU Memory Usage shows “N/A”. What can I do? Could you help me to solve this problem, please?
What I have done till now:
The first time, I wanted to use my local GPU on WSL2, there are I also had errors.
Secondly, I tried to use it on Windows, installed it, reinstalled Cuda 11,2, 11,1, 10,2,9.2. In all versions, I am having the same error.
“N/A” is not an error, it simply means “not available”. Under Windows, with the default WDDM driver model, the operating system manages GPU memory allocations, so nvidia-smi, which queries the NVIDIA driver for the data it displays, doesn’t know anything about the per-process GPU memory usage. In fact with my very recent driver it says outright “Not available in WDDM driver model” instead of “N/A”.
You should be able to see overall GPU memory utilization, though. For example, on my Windows 10 system, simply invoking nvidia-smi displays this:
Hello, @njuffa,
Thank you for your response, but I think in my case it is an error. Here I am uploading my “nvidia-smi” output. If you can see it. All are N/A and the total can be up to only 16% or 14%. I run my training(machine learning calculation), I think for that 14% is less.
Could you look at my attached photo please and say your opinion
Thank you
The posted output looks exactly as expected on a Windows system. As I said, with the WDDM driver model (which is the default), nvidia-smi has no way of knowing the per-process memory usage. If you invoke nvidia-smi -q instead of nvidia-smi it will actually tell you so by displaying the more verbose “Not available in WDDM driver model” instead of the terse “N/A” needed to fit into the summary format.
Note that nvidia-smi does show the overall GPU memory usage, here 520 MiB / 11264 MB. if you want to track this graphically over time, I would suggest taking a look at TechPowerUp’s GPU-Z utility (free download).
Yeap, I got exactly “Not available in WDDM driver model”. Then how can use my GeForce GTX 1080 Ti? Does it mean that I am using GeForce driver or not. To be honest, I am confused.
The fact that nvidia-smi cannot display the per-process GPU memory usage has zero impact on the use of the GPU for graphics or compute applications.
If you just want to know which processes currently use the GPU(s), nvidia-smi does provide that information under “Process name”. As an example, this is what it currently shows on my system:
Type “C” means it is a compute app. Which seems very much correct to me.
“G” means it is a graphics app, “C+G” means it is a mixed application using the GPU for both compute and graphics. Many Microsoft GUI components and applications fall into this mixed category.
In my example output above, you can see that both GPU 0 and GPU 1 are running an instance of Folding@Home Core 22, which is a compute app.
From the nvidia-smi documentation:
Type
Displayed as “C” for Compute Process, “G” for Graphics
Process, and “C+G” for the process having both Compute
and Graphics contexts.
Good evening @njuffa , since morning, I was running my calculation. Here I attached a screen of my PowerShell, if you can see running time is almost 13 hours, and the total GPU usage still 13%, Do you think is it correct and am I using my GPU?
On my code, I checked the device, so on the left side, you can see Running on “cuda”. But why only 13% of usage? I think I am not using GPU on my calculation, is it correct?
I have no knowledge how GPU-intensive your application is, but 13% is not close to zero, which is the GPU utilization I would expect if that app weren’t running.
I have the same problem, I am running a CNN, but when I start training my model, at the beginning of the first epoch it throws out of memory error I check my GPU usage in task manager but my GPU had not been used at all!! what should I do? please help me!
If you’re running a deep learning model, also be aware that part of each batch is loading training data into GPU as well as performing the calculations for each training step.
Data transfer is not CPU intensive so depends how long this takes.