What does 'Off' mean in the output of nvidia-smi?

I see “Off” to the right of “GeForce GTX 760”. Could anybody let me know what it refers to? Does it mean the GPU is not available? Thanks.

$ nvidia-smi 
Fri Apr  3 22:37:24 2015       
+------------------------------------------------------+                       
| NVIDIA-SMI 331.113    Driver Version: 331.113        |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 760     Off  | 0000:01:00.0     N/A |                  N/A |
|  0%   34C  N/A     N/A /  N/A |      7MiB /  2047MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+

I think one needs to read the legend and data as follows:

GPU  Name        Persistence-M
0  GeForce GTX 760     Off

Fan  Temp  Perf  Pwr:Usage/Cap
0%   34C  N/A     N/A /  N/A

So “Off” is the status of the Persistence Mode.

“man nvidia-smi” will help you.
Value should be “Enabled” or “Disabled”?

Persistence Mode
       A flag that indicates whether persistence mode is enabled for the GPU.  Value is  either
       "Enabled"  or  "Disabled".   When  persistence mode is enabled the NVIDIA driver remains
       loaded even when no active clients, such as X11 or nvidia-smi,  exist.   This  minimizes
       the  driver  load latency associated with running dependent apps, such as CUDA programs.
       For all CUDA-capable products.  Linux only.

In my case, nvidia-smi says…

$ nvidia-smi
Sat Apr  4 21:22:05 2015
+------------------------------------------------------+
| NVIDIA-SMI 346.47     Driver Version: 346.47         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 960     Off  | 0000:01:00.0     N/A |                  N/A |
| 30%   43C    P0    N/A /  N/A |     10MiB /  2047MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 960     Off  | 0000:04:00.0     N/A |                  N/A |
|  0%   38C    P0    N/A /  N/A |     10MiB /  2047MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0            C+G   Not Supported                                         |
|    1            C+G   Not Supported                                         |
+-----------------------------------------------------------------------------+

I think the problem with deciphering the output is due to the layout of the data, with two lines of legend followed by two line of data. That makes it more difficult to visually connect a data item with the corresponding part of the legend, at least the first time around.

1 Like

It can be turned on using this command
sudo nvidia-smi -pm 1

7 Likes

My GPU is in a WDDM state. what does that mean?

On Windows, the default driver uses the WDDM model. That is basically the Windows Device Driver Model 2.x at this time. Under this driver model, Windows has full control over the GPU, and in particular all GPU memory allocations.

The WDDM driver model was introduced for OS versions after Windows XP, with the main goal of ensuring stability of the GPU when used by the GUI. On the plus side, this makes various GPU-relevant data visible to Windows system tools (such as Task Manager), while a drawback is additional overhead when CUDA communicates with the GPU.

With some GPUs, NVIDIA support an alternative driver model called TCC. A GPU using this driver cannot be used for the GUI and allows more direct access to the GPU for CUDA, so its use may result in (1) more GPU memory being available to applications (2) higher performance for CUDA accelerated app by avoiding the WDDM overhead.

nvidia-smi can be used to select one of the two drivers (for GPUs that support TCC). A reboot is required to activate the latest selection.

1 Like

thank for for explaining the weird layout

nvidia-smi
Wed Jul 24 07:28:25 2024
±--------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------±---------------------±---------------------+
| 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 NVIDIA GeForce MX150 On | 00000000:02:00.0 Off | N/A |
| N/A 39C P8 N/A / ERR! | 6MiB / 2048MiB | 0% Default |
| | | N/A |
±----------------------------------------±---------------------±---------------------+

±--------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 66121 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 66245 G …libexec/gnome-remote-desktop-daemon 0MiB |
±--------------------------------------------------------------------------------------+
something error in nvidia is not working?
all is up-to-date

You need to match up the descriptions with the settings. Here:

GPU 0
Name NVIDIA GeForce MX150
Persistence-M On
Bus-Id 00000000:02:00.0
Disp.A Off <—

meaning this GPU is not driving a display.

Check to see if the persistence daemon is running:

$ systemctl status nvidia-persistenced.service
● nvidia-persistenced.service - NVIDIA Persistence Daemon
     Loaded: loaded (/lib/systemd/system/nvidia-persistenced.service; static)
     Active: active (running) since Fri 2025-03-28 06:19:18 EDT; 3min 19s ago
    Process: 1420 ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced --no-persistence-mode --verbose (code=exited, status=0/SUCCESS)
   Main PID: 1426 (nvidia-persiste)
      Tasks: 1 (limit: 76503)
     Memory: 1.0M
        CPU: 2ms
     CGroup: /system.slice/nvidia-persistenced.service
             └─1426 /usr/bin/nvidia-persistenced --user nvidia-persistenced --no-persistence-mode --verbose

Persistence-M; which is set in user-space via nvidia-smi is legacy, the new implementation is via the persistence daemon; the changeover is described here: Driver Persistence