nvidia-smi(1)

๐Ÿ’– nvidia-smi(1) โ€” the NVIDIA System Management Interface program ๐Ÿ’–

okay so bestie, welcome to the manual page for nvidia-smi, aka NVSMI โ€” it's giving your GPU's dashboard and remote control in one. no cap, this thing is iconic. lowkey obsessed. let's get into the vibes.

๐ŸŒธ NAME ๐ŸŒธ

nvidia-smi โ€” NVIDIA System Management Interface program

๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

nvidia-smi [OPTION1 [ARG1]] [OPTION2 [ARG2]] ...

โœจ DESCRIPTION โœจ

okay so nvidia-smi (also known as NVSMI) is the tool that gives you monitoring and management powers for each of NVIDIA's Tesla, Quadro, GRID and GeForce devices from the Fermi and higher architecture families. GeForce Titan series devices? They get support for most functions, but the rest of the Geforce brand only gets very limited information. NVSMI is a cross platform tool that supports all standard NVIDIA driver-supported Linux distros, plus 64bit versions of Windows starting with Windows Server 2008 R2. the way that you can consume metrics directly via stdout, or have them written to a file as CSV and XML formats for scripting purposes โ€” very demure, very flexible.

ngl, a lot of NVSMI's functionality actually comes from the underlying NVML C-based library. check the NVIDIA developer website link below for more on NVML. NVML-based python bindings are also available, iykyk.

๐Ÿšจ warning bestie: the output of NVSMI is not guaranteed to be backwards compatible. but both NVML and the Python bindings are backwards compatible, and they should be the first choice when writing any tools that must be maintained across NVIDIA driver releases. periodt, fr fr.

๐ŸŒˆ OPTIONS ๐ŸŒˆ

โœจ GENERAL OPTIONS โœจ

  • -h, --help โ€” prints usage info and exits. the "what do I even do here" button, slay.
  • --version โ€” prints version info and exits. simple, iconic.

๐ŸŽ€ LIST OPTIONS ๐ŸŽ€

  • -L, --list-gpus โ€” lists every NVIDIA GPU in the system, along with its UUID. a roster, basically.
  • -B, --list-excluded-gpus โ€” lists every excluded NVIDIA GPU in the system, along with its UUID. the "not invited to the party" list. this list ate.

๐Ÿ’… SUMMARY OPTIONS ๐Ÿ’…

vibe check: show a summary of GPUs connected to the system.

  • -col, --columns โ€” shows that summary of GPUs connected to the system in a multi-column format. cute layout moment.

any one of these:

  • -i, --id=ID โ€” targets one specific GPU.
  • -f FILE, --filename=FILE โ€” logs to the file you name instead of to stdout.
  • -l SEC, --loop=SEC โ€” keeps probing until you hit Ctrl+C, at the interval in seconds you give it.

๐Ÿ” QUERY OPTIONS ๐Ÿ”

  • -q, --query โ€” shows GPU or Unit info. the output includes all the data listed in the (GPU ATTRIBUTES) or (UNIT ATTRIBUTES) sections of this document. some devices and/or environments don't support every possible piece of info, and anything unsupported shows up as "N/A" in the output. by default you get info for all available GPUs or Units; use -i to narrow it down to a single GPU or Unit. highkey useful.

plus optionally:

  • -u, --unit โ€” shows Unit data instead of GPU data. Unit data is only available for NVIDIA S-class Tesla enclosures, so don't expect it everywhere.
  • -i, --id=ID โ€” shows data for one specific GPU or Unit. the id can be the GPU/Unit's 0-based index in the natural enumeration returned by the driver, the GPU's board serial number, the GPU's UUID, or the GPU's PCI bus ID (written as domain:bus:device.function in hex). it's recommended that you use either UUID or PCI bus ID if you want consistency, since device enumeration ordering is not guaranteed to be consistent between reboots and board serial number might be shared between multiple GPUs on the same board. so yeah, pick the stable one.
  • -f FILE, --filename=FILE โ€” sends query output to the file you specify instead of the default stdout. heads up: the file you specify gets overwritten. not me forgetting that ๐Ÿ˜ญ
  • -x, --xml-format โ€” outputs XML instead of the default human-readable format. both GPU and Unit query outputs conform to their corresponding DTDs, and those are available via the --dtd flag. literally XML era.
  • --dtd โ€” use it with -x. embeds the DTD in the XML output.
  • --debug=FILE โ€” makes an encrypted debug log you can submit with bug reports back to NVIDIA. bug-report core.
  • -d TYPE, --display=TYPE โ€” shows only the info you pick: MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER, CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT, ACCOUNTING, ENCODER_STATS, SUPPORTED_GPU_TARGET_TEMP, VOLTAGE, FBC_STATS, ROW_REMAPPER, GSP_FIRMWARE_VERSION, POWER_SMOOTHING, POWER_PROFILES , BANK_REMAPPER. you can combine flags with a comma, e.g. "MEMORY,ECC". for POWER, UTILIZATION and CLOCK display types, sampling data with max, min and avg also comes back. it doesn't work with -u/--unit or -x/--xml-format flags, so no mixing.
  • -l SEC, --loop=SEC โ€” continuously reports query data at the interval you give, instead of just once. the application will sleep in-between queries. on Linux, ECC error or Xid error events will print out during the sleep period if the -x flag was not specified. press Ctrl+C at any time to abort the loop โ€” otherwise it runs indefinitely. if no argument is specified for the -l form, the default interval is 5 seconds.
  • -lms ms, --loop-ms=ms โ€” same as -l,--loop but in milliseconds. tiny timing era.

๐Ÿงš SELECTIVE QUERY OPTIONS ๐Ÿงš

this lets the caller pass an explicit list of properties to query. very main character energy.

one of:

  • --query-gpu= โ€” GPU info. pass a comma separated list of the properties you want to query, e.g. --query-gpu=pci.bus_id,persistence_mode. call --help-query-gpu for more info.
  • --query-supported-clocks= โ€” a list of supported clocks. call --help-query-supported-clocks for more info.
  • --query-compute-apps= โ€” a list of currently active compute processes. call --help-query-compute-apps for more info.
  • --query-accounted-apps= โ€” a list of accounted compute processes. call --help-query-accounted-apps for more info. this query is not supported on vGPU host, fyi.
  • --query-retired-pages= โ€” a list of GPU device memory pages that have been retired. call --help-query-retired-pages for more info.
  • --query-remapped-rows= โ€” information about remapped rows. call --help-query-remapped-rows for more info.

mandatory:

  • --format= โ€” a comma separated list of format options:
    • csv โ€” comma separated values (MANDATORY)
    • noheader โ€” skips the first line with column headers
    • nounits โ€” doesn't print units for numerical values

plus any of:

  • -i, --id=ID โ€” shows data for a single specified GPU. the id can be the GPU's 0-based index in the natural enumeration returned by the driver, the GPU's board serial number, the GPU's UUID, or the GPU's PCI bus ID (written as domain:bus:device.function in hex). it's recommended that you use either UUID or PCI bus ID if you want consistency, since device enumeration ordering is not guaranteed to be consistent between reboots and board serial number might be shared between multiple GPUs on the same board.
  • -f FILE, --filename=FILE โ€” sends query output to the file you specify instead of the default stdout. the file you specify gets overwritten. same warning as above, bestie.
  • -l SEC, --loop=SEC โ€” continuously reports query data at the interval you give, instead of just once. the application will sleep in-between queries. on Linux, ECC error or Xid error events will print out during the sleep period if the -x flag was not specified. press Ctrl+C at any time to abort the loop, which will otherwise run indefinitely. if no argument is specified for the -l form, the default interval is 5 seconds.
  • -lms ms, --loop-ms=ms โ€” same as -l,--loop but in milliseconds.

๐Ÿ‘‘ DEVICE MODIFICATION OPTIONS ๐Ÿ‘‘

handle with care, bestie.

any one of:

  • -pm, --persistence-mode=MODE โ€” sets the persistence mode for the target GPUs. the (GPU ATTRIBUTES) section explains what persistence mode is. root required. it hits all GPUs unless you use -i to pick a single GPU. the effect is immediate, but it does not persist across reboots โ€” after every reboot persistence mode defaults to "Disabled". Linux only, no cap.
  • -e, --ecc-config=CONFIG โ€” sets the ECC mode for the target GPUs. see the (GPU ATTRIBUTES) section for the ECC mode explanation. root required. hits all GPUs unless you specify a single one with -i. this one takes effect after the next reboot and is persistent.
  • -p, --reset-ecc-errors=TYPE โ€” resets the ECC error counters for the target GPUs. the (GPU ATTRIBUTES) section explains the ECC error counter types. available arguments are 0\|VOLATILE or 1\|AGGREGATE. root required. hits all GPUs unless you use -i to target one. the effect is immediate. clearing aggregate counts is not supported on Ampere+.
  • -c, --compute-mode=MODE โ€” sets the compute mode for the target GPUs. the (GPU ATTRIBUTES) section explains compute mode. root required. hits all GPUs unless you specify one with -i. the effect is immediate, but it does not persist across reboots โ€” after each reboot compute mode resets to "DEFAULT".
  • -dm TYPE, --driver-model=TYPE โ€” modifies the driver model. Windows only. requires administrator privileges. -dm will fail if a display is attached, but -fdm will force the driver model to change. it hits all GPUs unless you use -i to target one. a driver restart is issued for all GPUs on the system for the change to take effect, regardless of which GPU(s) had their driver model changed. the --no-driver-restart flag can opt you out of the driver restart, which will need an explicit restart or reboot for the change to take effect. if the driver restart fails, a reboot will be required. see Driver Model for more information on Windows driver models. an error message indicates that setting the field failed.
  • -fdm TYPE, --force-driver-model=TYPE โ€” modifies the driver model, but forces it even if a display is attached. Windows only. requires administrator privileges. -dm will fail if a display is attached, while -fdm forces the driver model to change. it hits all GPUs unless you use -i to target one. a driver restart is issued for all GPUs on the system for the change to take effect, regardless of which GPU(s) had their driver model changed. the --no-driver-restart flag can opt you out of the driver restart, which will need an explicit restart or reboot for the change to take effect. a reboot will be required if the driver restart fails. see Driver Model for more information on Windows driver models. an error message indicates that setting the field failed.
  • --gom=MODE โ€” sets GPU Operation Mode: 0/ALL_ON, 1/COMPUTE, 2/LOW_DP. supported on GK110 M-class and X-class Tesla products from the Kepler family. not supported on Quadro and Tesla C-class products. LOW_DP and ALL_ON are the only modes supported on GeForce Titan devices. requires administrator privileges. see GPU Operation Mode for more information about GOM. GOM changes take effect after reboot. the reboot requirement might be removed in the future. compute only GOMs don't support WDDM (Windows Display Driver Model).
  • -r, --gpu-reset โ€” triggers a reset of one or more GPUs. use it to clear GPU HW and SW state in situations that would otherwise require a machine reboot โ€” typically useful if a double bit ECC error has occurred. the optional -i switch can target one or more specific devices. without this option, all GPUs are reset. root required. there can't be any applications using these devices (e.g. CUDA application, graphics application like X server, monitoring application like other instance of nvidia-smi). there also can't be any compute applications running on any other GPU in the system if individual GPU reset is not feasible.

Starting with the NVIDIA Ampere architecture, GPUs that have NVLink connections can be reset one at a time. On Ampere NVSwitch systems, Fabric Manager has to be running to make that reset happen. On Hopper and later NVSwitch systems? The whole Fabric Manager dependency for reset is gone, periodt.

If Fabric Manager isn't running, or if any of the GPUs you're resetting are from an architecture before NVIDIA Ampere, then every GPU with NVLink connections to a GPU being reset also has to be reset in the same command. You can swing that either by just not passing the -i switch at all, or by using -i to list out the GPUs to reset. And if your -i option doesn't name a complete set of NVLink GPUs? The command will throw an error telling you exactly which additional GPUs you need to include in the reset. it's giving helpful, honestly ๐Ÿ’…

The specifics are laid out in the tables below:

NVSwitch systems:

  • Pre-Ampere
    • Fabric Manager running โ†’ all PEER connected GPUs must be reset in the same command.
    • Fabric Manager not running โ†’ all PEER connected GPUs must be reset in the same command.
  • Ampere+
    • Fabric Manager running โ†’ each GPU can be reset individually.
    • Fabric Manager not running โ†’ all PEER connected GPUs must be reset in the same command.

Direct connected NVLink systems: (FM is not supported here, because there's no NVSwitch HW present, iykyk)

  • Pre-Ampere โ†’ all PEER connected GPUs must be reset in the same command.
  • Ampere+ โ†’ each GPU can be reset individually.
GPU reset is not guaranteed to work in all cases. It is not recommended for production environments at this time. In some situations there may be HW components on the board that fail to revert back to an initial state following the reset request. This is more likely to be seen on Fermi-generation products vs. Kepler, and more likely to be seen if the reset is being performed on a hung GPU. ๐Ÿ™ˆ

After a reset, the recommended move is to verify the health of each reset GPU before you use it for anything else. If any GPU isn't healthy, you should instigate a complete reset by power cycling the node. like, actually power cycle it, bestie

A reset triggered with no extra arguments will be a default Function Level Reset (FLR). To issue a Bus Reset, use -r bus. Heads up: for certain platforms, only Function Level Reset is possible.

On Windows, GPU reset is implemented as a driver restart. When it's used with the -i option, only the GPU(s) you specified get their driver restarted. Without -i, all GPUs on the system get their driver restarted. That driver restart disables and re-enables the affected devices, and the operation requires administrator privileges. Also โ€” GPU reset operation will not be supported on MIG enabled vGPU guests. ๐Ÿ˜ญ

Visit http://developer.nvidia.com/gpu-deployment-kit to download the GDK.

  • -vm, --virt-mode=MODE โ€” Switch GPU Virtualization Mode. Sets the GPU virtualization mode to 3/VGPU or 4/VSGA. The virtualization mode of a GPU can only be set when it's running on a hypervisor.
  • -lgc, --lock-gpu-clocks=MIN_GPU_CLOCK,MAX_GPU_CLOCK โ€” Specifies <minGpuClock,maxGpuClock> clocks as a pair (e.g. 1500,1500) that defines the closest desired locked GPU clock speed in MHz. The input can also be a singular desired clock value (e.g. <GpuClockValue>). Optionally, --mode can be supplied to specify the clock locking modes. Supported on Volta+. Requires root.
    • --mode=0 (Default) โ€” This mode is the default clock locking mode and provides the highest possible frequency accuracies supported by the hardware.
    • --mode=1 โ€” The clock locking algorithm leverages close loop controllers to achieve frequency accuracies with improved perf per watt for certain classes of applications. Because of the convergence latency of close loop controllers, the frequency accuracies may be slightly lower than default mode 0.
  • -lmi, --lock-memory-clocks-info โ€” Provides info on the style of memory clock locking support that this GPU supports (not supported, deferred, or runtime modifiable). Note: if a settling time is required between runtime switches, that settling time information will be provided too. cute of it to tell you
  • -lmc, --lock-memory-clocks=MIN_MEMORY_CLOCK,MAX_MEMORY_CLOCK โ€” Specifies <minMemClock,maxMemClock> clocks as a pair (e.g. 5100,5100) that defines the range of desired locked Memory clock speed in MHz. The input can also be a singular desired clock value (e.g. <MemClockValue>). Requires root. Note: this option does not work on GPUs based on NVIDIA Hopper architectures; to lock memory clocks on those systems use --lock-memory-clocks-deferred instead. ๐Ÿซถ
  • -rgc, --reset-gpu-clocks โ€” Resets the GPU clocks to the default value. Supported on Volta+. Requires root.
  • -rmc, --reset-memory-clocks โ€” Resets the memory clocks to the default value. Supported on Volta+. Requires root.
  • -ac, --applications-clocks=MEM_CLOCK,GRAPHICS_CLOCK โ€” This option is deprecated and will be removed in a future CUDA release. Please use -lmc for locking memory clocks and -lgc for locking graphics clocks. Specifies maximum <memory,graphics> clocks as a pair (e.g. 2000,800) that defines the GPU's speed while running applications on a GPU. Supported on Maxwell-based GeForce and from the Kepler+ family in Tesla/Quadro/Titan devices. Requires root.
  • -rac, --reset-applications-clocks โ€” This option is deprecated and will be removed in a future CUDA release. Resets the applications clocks to the default value. Supported on Maxwell-based GeForce and from the Kepler+ family in Tesla/Quadro/Titan devices. Requires root.
  • -lmcd, --lock-memory-clocks-deferred โ€” Specifies the memory clock that defines the closest desired Memory Clock in MHz. The memory clock takes effect the next time the GPU is initialized. This can be guaranteed by unloading and reloading the kernel module. Requires root.
  • -rmcd, --reset-memory-clocks-deferred โ€” Resets the memory clock to the default value. Driver unload and reload is required for this to take effect. That can be done by unloading and reloading the kernel module. Requires root.
  • -svfd, --set-vf-derate=OFFSET โ€” Applies a negative frequency offset in MHz to the graphics clock VF curve for deterministic performance tuning. The offset value must be a negative integer within the allowed range specific to the GPU. Only supported on Rubin and newer architectures. Requires administrator privileges.
  • -gvfd, --get-vf-derate-info โ€” Displays the current VF derate offset and the allowed graphics clock VF curve offset range for the GPU. Only supported on Rubin and newer architectures.
  • --set-adaptive-tgp-mode=0|1 โ€” Sets the in-band Adaptive TGP (Total Graphics Power) mode request to disabled (0) or enabled (1). Requires root. Only supported on Rubin and newer architectures.
  • --get-adaptive-tgp-mode-info โ€” Displays the requested Adaptive TGP (Total Graphics Power) mode, the effective mode after arbitration (including out-of-band overrides), and the adjusted base power when enabled. Only supported on Rubin and newer architectures.
  • -pl, --power-limit=POWER_LIMIT โ€” Specifies the maximum power limit in watts. Accepts integer and floating point numbers. It takes an optional argument --scope. Only on supported devices from the Kepler family. The value needs to be between Min and Max Power Limit as reported by nvidia-smi. Requires root.
  • -sc, --scope=0/GPU, 1/TOTAL_MODULE, 2/GPU_BASE โ€” Specifies the scope of the power limit. The options are:
    • 0/GPU: This only changes power limits for the GPU.
    • 1/Module: This changes the power limits for the module containing multiple components, e.g. GPU and CPU.
    • 2/GPU Base: This changes the GPU base power setting.
  • -cc, --cuda-clocks=MODE โ€” Overrides or restores default CUDA clocks. Available arguments are 0|RESTORE_DEFAULT or 1|OVERRIDE. Requires root.
  • -am, --accounting-mode=MODE โ€” Enables or disables GPU Accounting. With GPU Accounting you can keep track of the usage of resources throughout the lifespan of a single process. Only on supported devices from the Kepler family. Requires administrator privileges. Available arguments are 0|DISABLED or 1|ENABLED.
  • -caa, --clear-accounted-apps โ€” Clears all processes accounted so far. Only on supported devices from the Kepler family. Requires administrator privileges.
  • --auto-boost-default=MODE โ€” This option is deprecated and will be removed in a future CUDA release. Set the default auto boost policy to 0/DISABLED or 1/ENABLED, enforcing the change only after the last boost client has exited. Only on certain Tesla devices from the Kepler+ family and Maxwell-based GeForce devices. Requires root.
  • --auto-boost-permission=MODE โ€” This option is deprecated and will be removed in a future CUDA release. Allow non-admin/root control over auto boost mode. Available arguments are 0|UNRESTRICTED, 1|RESTRICTED. Only on certain Tesla devices from the Kepler+ family and Maxwell-based GeForce devices. Requires root.
  • -mig, --multi-instance-gpu=MODE โ€” Enables or disables Multi Instance GPU mode. Only supported on devices based on the NVIDIA Ampere architecture. Requires root. Available arguments are 0|DISABLED or 1|ENABLED.
  • -gtt, --gpu-target-temp=MODE โ€” Set GPU Target Temperature for a GPU in degrees celsius. The target temperature should be within limits supported by the GPU. Those limits can be retrieved by using the query option with SUPPORTED_GPU_TARGET_TEMP. Requires Root.
  • --set-hostname=hostname โ€” Set the hostname associated with the device. Should be a maximum length of 64 characters (including the terminating NULL character). Requires root.
  • --get-hostname โ€” Retrieves the hostname associated with the device.
๐ŸŒธ plus optionally
  • -i, --id=ID โ€” Modify a single specified GPU. The specified id may be the GPU/Unit's 0-based index in the natural enumeration returned by the driver, the GPU's board serial number, the GPU's UUID, or the GPU's PCI bus ID (as domain:bus:device.function in hex). Real talk: users who want consistency should use either UUID or PCI bus ID, since device enumeration ordering is not guaranteed to be consistent between reboots and board serial number might be shared between multiple GPUs on the same board. iykyk
  • -eom, --error-on-warning โ€” Return a non-zero error for warnings.

๐ŸŽ€ UNIT MODIFICATION OPTIONS ๐ŸŽ€

  • -t, --toggle-led=STATE โ€” Set the LED indicator state on the front and back of the unit to the specified color. See the (UNIT ATTRIBUTES) section for a description of the LED states. Allowed colors are 0|GREEN and 1|AMBER. Requires root. glow up the rack โœจ
๐Ÿฆ‹ plus optionally
  • -i, --id=ID โ€” Modify a single specified Unit. The specified id is the Unit's 0-based index in the natural enumeration returned by the driver.

โญ SHOW DTD OPTIONS โญ

  • --dtd โ€” Display Device or Unit DTD.
  • -f FILE, --filename=FILE โ€” plus, like, optionally ๐Ÿ’– โ€” pipe your query output into the file of your choice instead of good old stdout. Heads up bestie: the file you name gets overwritten. Gone. Poof. No cap.
  • -u, --unit โ€” show the Unit DTD instead of the device DTD โœจ

ok so the rest of these? they're not really "flags," they're whole little sub-worlds ๐ŸŒ โ€” each one has its own -h help page and everything. Go peek if u wanna know more ๐Ÿ‘€

  • topo โ€” shows u the topology tea โ˜• about the system. Run nvidia-smi topo -h for the full breakdown. It'll show every GPU NVML can detect, but the CPU and NUMA node affinity info? that only shows up for GPUs with Kepler or newer architectures (older cards get left on read ๐Ÿ˜ญ). Note: GPU enumeration here is the same as NVML. nvidia-smi topo works on Linux and Windows โ€” WSL is not supported ๐Ÿ’€
  • drain โ€” display and modify the GPU drain states. A drain state is a state where the GPU is no longer accepting new clients โ€” it's what u use while u prep to power down the GPU ๐Ÿ”Œ Run nvidia-smi drain -h for more. Linux only.
  • nvlink โ€” shows ur nvlink info ๐Ÿฆ‹ Run nvidia-smi nvlink -h for more.
  • clocks โ€” query and control clocking behavior โฐ Run nvidia-smi clocks --help for more.
  • vgpu โ€” info on GRID virtual GPUs ๐Ÿ’œ Run nvidia-smi vgpu -h for more.
  • mig โ€” gives u the controls for MIG management ๐Ÿ‘‘ nvidia-smi mig -h for more.
  • boost-slider โ€” controls for boost sliders management ๐ŸŽš๏ธ nvidia-smi boost-slider -h for more.
  • power-hint โ€” queries for power hint โšก nvidia-smi power-hint -h for more.
  • event-log โ€” displays events that have happened since driver load ๐Ÿ“ nvidia-smi event-log -h for more.
  • cper โ€” reads base64-encoded CPER events since driver load ๐Ÿ” nvidia-smi cper -h for more.
  • conf-compute โ€” control + queries for confidential compute ๐Ÿคซ nvidia-smi conf-compute -h for more.
  • power-smoothing โ€” controls and info for power smoothing ๐ŸŒŠ nvidia-smi power-smoothing -h for more.
  • power-profiles โ€” profiles controls and info for workload power profiles ๐Ÿ”‹ nvidia-smi power-profiles -h for more.
  • encodersessions โ€” display Encoder Sessions info ๐ŸŽฌ nvidia-smi encodersessions -h for more.

๐Ÿ’… RETURN VALUE ๐Ÿ’…

k so the return code is literally the vibe check at the end โ€” it tells u whether the operation succeeded or failed, and why it failed. Slay.

  • Return code 0 โ€” Success ๐ŸŽ‰ bestie ate
  • Return code 2 โ€” A supplied argument or flag is invalid ๐Ÿ™ˆ
  • Return code 3 โ€” The requested operation is not available on target device ๐Ÿšซ
  • Return code 4 โ€” The current user does not have permission to access this device or perform this operation ๐Ÿ”’
  • Return code 6 โ€” A query to find an object was unsuccessful ๐Ÿ˜ญ
  • Return code 8 โ€” A device's external power cables are not properly attached ๐Ÿ”Œ๐Ÿ’€
  • Return code 9 โ€” NVIDIA driver is not loaded ๐Ÿ‘ป
  • Return code 10 โ€” NVIDIA Kernel detected an interrupt issue with a GPU โš ๏ธ
  • Return code 12 โ€” NVML Shared Library couldn't be found or loaded ๐Ÿ“š
  • Return code 13 โ€” Local version of NVML doesn't implement this function ๐Ÿงฉ
  • Return code 14 โ€” infoROM is corrupted ๐Ÿ’€
  • Return code 15 โ€” The GPU has fallen off the bus or has otherwise become inaccessible ๐Ÿซ  (yes that's the real phrase, she's dramatic but she's fine)
  • Return code 255 โ€” Other error or internal driver error occurred ๐Ÿ”ฅ

๐Ÿ‘‘ GPU ATTRIBUTES ๐Ÿ‘‘

here's the whole menu of everything that can come back from the -q device query option ๐Ÿ“‹ Unless it says otherwise, all numerical results are base 10 and unitless, mwah.

Timestamp

The current system timestamp at the moment nvidia-smi was invoked โฑ๏ธ Format is "Day-of-week Month Day HH:MM:SS Year".

Driver Version

Deprecated ๐Ÿชฆ use KMD Version instead.

KMD Version

The version of the installed 'Kernel Mode Driver' โ€” aka the NVIDIA display driver โœจ This is an alphanumeric string.

CUDA Version

Deprecated ๐Ÿชฆ use CUDA UMD Version instead.

CUDA UMD Version

The CUDA 'User Mode Driver' version ๐Ÿ’œ This is the latest CUDA version supported by the driver โ€” and it's usually, but not always, the version of the CUDA toolkit installed on the system. Careful with that one. This is an alphanumeric string.

Attached GPUs

The number of NVIDIA GPUs in the system ๐Ÿ”ข

Product Name

The official product name of the GPU ๐Ÿท๏ธ This is an alphanumeric string. For all products.

Product Brand

The official brand of the GPU ๐Ÿ’– This is an alphanumeric string. For all products.

Product Architecture

The official architecture name of the GPU ๐Ÿ—๏ธ This is an alphanumeric string. For all products.

Display Mode

This field is deprecated and will be removed in a future release ๐Ÿชฆ

Display Attached

A flag for whether a physical display (like, a monitor ๐Ÿ–ฅ๏ธ) is currently connected to any of the GPU's connectors. "Yes" means something's attached. "No" means it's not.

Display Active

A flag for whether a display is initialized on the GPU's side (ikr, like memory being allocated on the device for display ๐Ÿ’ญ). The display can be active even when no monitor is physically attached โ€” wild, I know. "Enabled" means an active display. "Disabled" means otherwise.

Persistence Mode

A flag for whether persistence mode is enabled for the GPU โ€” value is either "Enabled" or "Disabled". When persistence mode is on, the NVIDIA driver stays loaded even when there are no active clients, like X11 or nvidia-smi. Why do u care? because it minimizes the driver load latency that comes with running dependent apps โ€” CUDA programs and such ๐ŸŒธ For all CUDA-capable products. Linux only.

Addressing Mode

A field showing which addressing mode is currently active. The value is "ATS" or "HMM" or "None" ๐Ÿ‘€

  • When it's "ATS", system-allocated memory (like malloc) is addressable from the GPU via Address Translation Services โ€” meaning there's effectively a single set of page tables used by both the CPU and the GPU ๐Ÿง 
  • When it's "HMM", system-allocated memory (like malloc) is addressable from the GPU via software-based mirroring of the CPU's page tables, on the GPU ๐Ÿชž
  • When it's "None", neither ATS nor HMM is active ๐Ÿšซ

Linux only.

MIG Mode

MIG Mode configuration status ๐Ÿงฉ

  • Current โ€” MIG mode currently in use: NA/Enabled/Disabled
  • Pending โ€” pending configuration of MIG Mode: Enabled/Disabled

MIG Device

When MIG is enabled, each MIG device has the following attributes displayed ๐Ÿ’…

Index

Unique identifier for this MIG device within its parent GPU ๐Ÿ”ข

GPU Instance ID

Identifier of the GPU instance this MIG device belongs to ๐Ÿ†”

Compute Instance ID

Identifier of the compute instance within the GPU instance ๐Ÿท๏ธ

Device Attributes

The hardware engines allocated to this MIG device โ€” these are shared among compute instances associated with the same GPU instance ๐Ÿ› ๏ธ

  • Multiprocessor count โ€” number of SMs (Streaming Multiprocessors)
  • Copy Engine count โ€” number of copy engines
  • Encoder count โ€” number of video encoders
  • Decoder count โ€” number of video decoders
  • OFA count โ€” number of OFAs (Optical Flow Accelerators)
  • JPG count โ€” number of JPEG encoders/decoders

ECC Errors

ECC error counts for this MIG device ๐Ÿ˜ฌ

  • SRAM uncorrectable errors โ€” number of uncorrectable errors detected in any of the SRAMs

Shared FB Memory Usage

FB memory allocation and usage for this MIG device โ€” this is shared among the compute instances associated with the same GPU instance ๐Ÿง 

  • Total โ€” total size of FB memory
  • Reserved โ€” reserved size of FB memory
  • Used โ€” used size of FB memory
  • Free โ€” available size of FB memory

Shared BAR1 Memory

BAR1 memory allocation and usage for this MIG device โ€” shared among the compute instances associated with the same GPU instance โœจ

  • Total โ€” total size of BAR1 memory
  • Used โ€” used size of BAR1 memory
  • Free โ€” available size of BAR1 memory

Accounting Mode

A flag for whether accounting mode is enabled for the GPU โ€” value is either "Enabled" or "Disabled" ๐Ÿ“Š When accounting is enabled, stats get calculated for each compute process running on the GPU. U can query those stats during the process's lifetime or after it's terminated. The execution time of the process is reported as 0 while the process is in the running state, and gets updated to the actual execution time after the process has terminated ๐Ÿ‘€ See --help-query-accounted-apps for more info.

Accounting Mode Buffer Size

Returns the size of the circular buffer that holds the list of processes u can query for accounting stats ๐Ÿ”„ This is the max number of processes that accounting info will be stored for, before info about the oldest processes gets overwritten by info about new processes.

Driver Model

On Windows, the TCC, WDDM and MCDM driver models are supported ๐Ÿ’ป The driver model can be changed with the (-dm) or (-fdm) flags. The TCC driver model is optimized for compute applications โ€” like, kernel launch times will be quicker with TCC โšก The WDDM driver model is designed for graphics applications and is not recommended for compute applications. Linux doesn't support multiple driver models and will always have the value "N/A" ๐Ÿง A driver restart will be attempted for all the devices so the driver model change can take effect. The --no-driver-restart flag can be used to prevent the driver restart โ€” in which case the driver model change takes effect on the next reboot ๐Ÿ”

  • Current โ€” the driver model currently in use. Always "N/A" on Linux.
  • Pending โ€” the driver model that will be used on the next reboot. Always "N/A" on Linux.

Serial Number

This number matches the serial number physically printed on each board ๐Ÿท๏ธ It's a globally unique, immutable alphanumeric value.

GPU UUID

This value is the globally unique, immutable alphanumeric identifier of the GPU ๐Ÿ†” It does not correspond to any physical label on the board.

GPU PDI

This value is the Per Device Identifier of the GPU ๐Ÿ”‘ It's a 64-bit value that provides a uniqueness guarantee for the GPU.

Minor Number

The minor number for the device, such that the NVIDIA device node file for each GPU has the form /dev/nvidia[minor number] ๐Ÿ“ Available only on Linux platform.

VBIOS Version

The BIOS of the GPU board ๐Ÿงฌ

MultiGPU Board

Whether or not this GPU is part of a multiGPU board ๐Ÿ‘ฏ

Board ID

The unique board ID assigned by the driver. If two or more GPUs have the same board ID and the "MultiGPU" field above is true, then those GPUs are on the same board ๐Ÿ”—

Board Part Number

The unique part number of the GPU's board ๐Ÿ”–

GPU Part Number

The unique part number of the GPU ๐Ÿ’œ

๐Ÿ’– FRU Part Number

The unique FRU part number of the GPU. That's it, that's the whole vibe โ€” one little number that says this exact board and nobody else. ๐ŸŽ€

๐ŸŒธ Platform Info

Okay so Platform Info is the compute tray platform specific tea โ˜• โ€” it's all about the GPU's positional index plus the platform identifying information. Basically where this GPU lives and who it is. Slay.

Chassis Serial Number

Serial number of the chassis containing this GPU. Like the GPU's home address, but make it serialized. ๐Ÿ 

Slot Number

The slot number in the chassis containing this GPU โ€” and yes bestie, this one includes switches. Noted. ๐Ÿ’…

Tray Index

The tray index within the compute slots in the chassis containing this GPU โ€” and this one does not include switches. (Yes, the difference matters. The switches thing is the whole personality of these two fields.) โœจ

Host ID

Index of the node within the slot containing this GPU. Nested, iconic, slightly unhinged. ๐Ÿฆ‹

Peer Type

The platform indicated NVLink-peer type โ€” like, for example, whether a switch is present or not. iykyk.

Module Id

ID of this GPU within the node. Main character energy, but it's one of many characters. ๐Ÿ˜ญ

GPU Fabric GUID

Fabric ID for this GPU. Its fabric little passport. ๐ŸŒˆ

๐Ÿงš Inforom Version

Version numbers for each object in the GPU board's inforom storage. So what even is the inforom? It's a small, persistent store of configuration and state data for the GPU. All the inforom version fields are numerical. And knowing these version numbers is genuinely useful because some GPU features are only available with inforoms of a certain version or higher โ€” so this is a real vibe check on what your card can do.

Heads up: if any of the fields below return Unknown Error, an additional Inforom verification check is performed and an appropriate warning message is displayed. So it's not just silently giving up on you. ๐Ÿซถ

Image Version

Global version of the infoROM image. Image version โ€” just like VBIOS version โ€” uniquely describes the exact version of the infoROM flashed on the board, in contrast to infoROM object version which is only an indicator of supported features. So: this one is the exact one, not the features one. ๐Ÿ’…

OEM Object

Version for the OEM configuration data.

ECC Object

Version for the ECC recording data.

Power Management Object

Version for the power management data.

Inforom checksum validation

Inforom checksum validation โ€” reported as "valid", "invalid" or "N/A". Only available via --query-gpu inforom.checksum_validation. ๐Ÿ“‹

๐ŸŽ€ Inforom BBX Object Flush

All the info about flushing of the blackbox data to the inforom storage. Very behind-the-scenes, very mysterious, very ๐Ÿ–ค.

Latest Timestamp

The timestamp of the latest flush of the BBX Object during the current run.

Latest Duration

The duration of the latest flush of the BBX Object during the current run.

Time Run

The cumulative amount of time stored in the BBX tracking GPU driver lifetime. Big lifetime-numbers energy. โณ

โญ GPU Operation Mode

So GOM โ€” GPU Operation Mode โ€” lets you reduce power usage and optimize GPU throughput by disabling GPU features. Each GOM is designed to meet specific user needs, so it's basically picking an outfit for your GPU. ๐Ÿ’ƒ

In "All On" mode everything is enabled and running at full speed. All-out, no notes.

The "Compute" mode is designed for running only compute tasks. Graphics operations are not allowed. Read that again โ€” not allowed. ๐Ÿšซ

The "Low Double Precision" mode is designed for running graphics applications that don't require high bandwidth double precision.

GOM can be changed with the --gom flag. ๐Ÿ”ง

Supported on GK110 M-class and X-class Tesla products from the Kepler family. Not supported on Quadro and Tesla C-class products. Low Double Precision and All On modes are the only modes available for supported GeForce Titan products. So check your card before you go changing modes, bestie. ๐Ÿ™ˆ

Current

The GOM currently in use.

Pending

The GOM that will be used on the next reboot. The future GOM. โœจ

๐Ÿ’œ GPU C2C Mode

The C2C mode of the GPU. Short, sweet, mysterious. ๐Ÿฆ‹

๐Ÿ’€ GPU Reset Status

Reset status of the GPU. And bestie, please note: this functionality is deprecated. ๐Ÿ˜ญ

Reset Required

Requested functionality has been deprecated.

Requested functionality has been deprecated.

๐Ÿ”ฅ GPU Recovery Action

The action to take to clear a fault that previously happened. Important caveat: it is not intended for determining which fault triggered the recovery action โ€” it just tells you what to do about it. Possible values: None, Reset, Reboot, Drain P2P, Drain and Reset, Recover IMEX Domain, Bus Reset, System Reboot.

None

No recovery action needed. The best outcome. We love a no-op. ๐ŸŽ€

Reset

Example scenario โ€” Uncontained HBM/SRAM UCE.

The GPU has encountered a fault that requires a reset to recover. Terminate all GPU processes, reset the GPU using nvidia-smi -r, and the GPU can be used again by starting new GPU processes.

Reboot

Example scenario โ€” UVM fatal error.

The GPU has encountered a fault that may have left the OS in an inconsistent state. Reboot the operating system to restore the OS back to a consistent state.

  • Node reboot required.
  • Application cannot restart without node reboot.
  • OS warm reboot is sufficient (no need for AC/DC cycle).

Drain P2P

Example scenario โ€” N/A.

The GPU has encountered a fault that requires all peer-to-peer traffic to be quiesced. Terminate all GPU processes that conduct peer-to-peer traffic and disable UVM persistence mode.

Disable job scheduling (no new jobs), stop all applications when convenient, if persistence mode is enabled, disable it.

Once all peer-to-peer traffic are drained, query NVML_FI_DEV_GET_GPU_RECOVERY_ACTION again, which will return one of the other actions. If still DRAIN_P2P, then GPU reset.

Drain and Reset

Example scenario โ€” Contained HBM UCE.

Reset Recommended.

The GPU has encountered a fault that results in the GPU temporarily operating at a reduced capacity, such as part of its frame buffer memory being offlined, or some of its MIG partitions down.

No new work should be scheduled on the GPU, but existing work that didn't get affected are safe to continue until they finish or reach a good checkpoint.

Safe to restart application (memory capacity will be reduced due to dynamic page offlining), but need to eventually reset (to get row remap).

Asserted only for UCE row remaps.

After all existing work have drained, reset the GPU to regain its full capacity.

Bus Reset

The GPU has encountered a fault that requires a bus reset to recover. Terminate all GPU processes, reset the GPU using nvidia-smi -r bus, and the GPU can be used again by starting new GPU processes.

System Reboot

The GPU has encountered a fault that requires a system reboot to recover. Reboot the system to restore the platform to a consistent state. The whole platform, bestie. ๐Ÿ˜ญ

๐Ÿฆ‹ GSP Firmware Version

Firmware version of GSP. This is an alphanumeric string โ€” so it's giving letters and numbers, not just digits. ๐Ÿ’…

๐ŸŒˆ PCI

Basic PCI info for the device. Some of this information may change whenever cards are added/removed/moved in a system. For all products. ๐Ÿ‘‘

Bus

PCI bus number, in hex.

Device

PCI device number, in hex.

Domain

PCI domain number, in hex.

Base Classcode

PCI Base classcode, in hex.

Sub Classcode

PCI Sub classcode, in hex.

Device Id

PCI vendor device id, in hex.

Sub System Id

PCI Sub System id, in hex.

Bus Id

PCI bus id as "domain:bus:device.function", in hex.

The PCIe link generation and bus width. Love a link.

Real talk: not all platforms use PCI Express as the primary data path between the host and the GPU โ€” some use another interconnect, such as C2C on certain integrated configurations. On those platforms, PCIe metrics here may not be representative of the primary data path bandwidth. Refer to C2C bandwidth metrics when applicable. Don't get got. ๐Ÿ™ˆ

Current

The current link generation and width. These may be reduced when the GPU is not in use. (Yes, it's napping. Let it nap.)

Max

The maximum link generation and width possible with this GPU and system configuration. For example, if the GPU supports a higher PCIe generation than the system supports, then this reports the system PCIe generation. So it's max, but max-what-the-system-can-actually-do. โญ

๐Ÿ’… Bridge Chip

Information related to Bridge Chip on the device. Heads up: the bridge chip firmware is only present on certain boards and may display "N/A" for some newer multiGPUs boards.

Type

The type of bridge chip. Reported as N/A if it doesn't exist.

Firmware Version

The firmware version of the bridge chip. Reported as N/A if it doesn't exist.

โœจ Replays Since Reset

The number of PCIe replays since reset.

๐ŸŽ€ Replay Number Rollovers

The number of PCIe replay number rollovers since reset. A replay number rollover occurs after 4 consecutive replays and results in retraining the link. Four! That's the number! ๐Ÿ”ข

๐Ÿ“ Tx Throughput

The GPU-centric transmission throughput across the PCIe bus in MB/s over the past 20ms. Only supported on Maxwell architectures and newer.

๐Ÿ“ Rx Throughput

The GPU-centric receive throughput across the PCIe bus in MB/s over the past 20ms. Only supported on Maxwell architectures and newer. (Yes, it's the mirror twin of Tx. They're matching. ๐Ÿซถ)

๐Ÿงš Atomic Caps

The PCIe atomic capabilities of outbound/inbound operations of the GPU.

๐ŸŒธ Fan Speed

The fan speed value is the percent of the product's maximum noise tolerance fan speed that the device's fan is currently intended to run at. This value may exceed 100% in certain cases. ๐Ÿคฏ

Note: the reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, this output will not match the actual fan speed. So don't trust it blindly, bestie.

Many parts do not report fan speeds because they rely on cooling via fans in the surrounding enclosure. For all discrete products with dedicated fans. ๐Ÿ’จ

๐Ÿ”ฅ Performance State

The current performance state for the GPU. States range from P0 (maximum performance) to P12 (minimum performance). Twelve whole states. The range is real. ๐Ÿ“ˆ

๐Ÿ‘‘ Clocks Event Reasons

Retrieves information about factors that are reducing the frequency of clocks. Basically: who's holding the clocks back? ๐Ÿ•ต๏ธ

If all event reasons are returned as "Not Active", it means that clocks are running as high as possible. That's the dream scenario, fr fr.

Idle

This option is deprecated and will be removed in a future CUDA release. Nothing is running on the GPU and the clocks are dropping to Idle state. ๐Ÿ˜ด

Application Clocks Setting

This option is deprecated and will be removed in a future CUDA release. GPU clocks are limited by applications clocks setting. E.g. can be changed using nvidia-smi --applications-clocks=<Desired Clock Freq in MHz>. ๐Ÿ“

SW Power Cap

SW Power Scaling algorithm is reducing the clocks below requested clocks because the GPU is consuming too much power. E.g. SW power cap limit can be changed with nvidia-smi --power-limit=<Power Limit Value in W>. โšก

HW Slowdown

This option will be removed in a future CUDA release. HW Slowdown is engaged, reducing the core clocks by a factor of 2 or more. It is active if either HW Thermal Slowdown or HW Power Brake are active. ๐Ÿ’€

HW Thermal Slowdown

HW Thermal Slowdowns are reducing the core clocks by a factor of 2 or more due to temperature being too high. It's hot. Too hot. ๐Ÿฅต

HW Power Brake

External Power Brake Assertion is triggered (e.g. by the system power supply). The power supply said absolutely not. ๐Ÿ›‘

  • Sync Boost โ€” This GPU has been added to a Sync boost group with nvidia-smi or DCGM in order to maximize performance per watt. All GPUs will be limited by the frequency which can be achieved by the slowest GPU. Look at the throttle reasons for other GPUs in the system to see why those GPUs are holding this one at lower clocks.
  • SW Thermal Slowdown โ€” SW Thermal capping algorithm is reducing clocks below requested clocks because GPU temperature is higher than Max Operating Temp
  • Display Clock Setting โ€” This field will be removed in a future CUDA release. GPU clocks are limited by current setting of Display clocks. Only supported on Volta devices.
  • Board Limit โ€” The board limit (operating) policy is currently the limiting factor for GPU clocks.
  • Reliability โ€” The reliability policy is currently the limiting factor for GPU clocks.

๐Ÿ•’ Clock Event Reasons Counters ๐Ÿ•’

Counters, in microseconds, for the amount of time factors have been reducing the frequency of clocks.

  • SW Power Capping โ€” Amount of time SW Power Scaling algorithm has reduced the clocks below requested clocks because the GPU was consuming too much power.
  • Sync Boost Group โ€” Amount of time the clock frequency of this GPU was reduced to match the minimum possible clock across the sync boost group.
  • SW Thermal Slowdown โ€” Amount of time SW Thermal capping algorithm has reduced clocks below requested clocks because GPU temperature was higher than Max Operating Temp.
  • HW Thermal Slowdown โ€” Amount of time HW Thermal Slowdown was engaged, reducing the core clocks by a factor of 2 or more, due to temperature being too high.
  • HW Power Braking โ€” Amount of time External Power Brake Assertion was triggered (e.g. by the system power supply).

๐Ÿงฉ Sparse Operation Mode ๐Ÿงฉ

A flag that indicates whether sparse operation mode is enabled for the GPU. Value is either "Enabled" or "Disabled". Reported as "N/A" if not supported.

๐ŸŒธ FB Memory Usage ๐ŸŒธ

On-board frame buffer memory information. Reported total memory can be affected by ECC state. If ECC does affect the total available memory, memory is decreased by several percent, due to the requisite parity bits. The driver may also reserve a small amount of memory for internal use, even without active work on the GPU. On systems where GPUs are NUMA nodes, the accuracy of FB memory utilization provided by nvidia-smi depends on the memory accounting of the operating system. This is because FB memory is managed by the operating system instead of the NVIDIA GPU driver. Typically, pages allocated from FB memory are not released even after the process terminates to enhance performance. In scenarios where the operating system is under memory pressure, it may resort to utilizing FB memory. Such actions can result in discrepancies in the accuracy of memory reporting. For all products.

  • Total โ€” Total size of FB memory.
  • Reserved โ€” Reserved size of FB memory.
  • Used โ€” Used size of FB memory.
  • Free โ€” Available size of FB memory.

๐ŸŽ€ BAR1 Memory Usage ๐ŸŽ€

BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or by 3rd party devices (peer-to-peer on the PCIe bus).

  • Total โ€” Total size of BAR1 memory.
  • Used โ€” Used size of BAR1 memory.
  • Free โ€” Available size of BAR1 memory.

๐Ÿ’… Compute Mode ๐Ÿ’…

The compute mode flag indicates whether individual or multiple compute applications may run on the GPU.

  • "Default" โ€” means multiple contexts are allowed per device.
  • "Exclusive Process" โ€” means only one context is allowed per device, usable from multiple threads at a time.
  • "Prohibited" โ€” means no contexts are allowed per device (no compute apps).

"EXCLUSIVE_PROCESS" was added in CUDA 4.0. Prior CUDA releases supported only one exclusive mode, which is equivalent to "EXCLUSIVE_THREAD" in CUDA 4.0 and beyond.

For all CUDA-capable products.

๐Ÿ”ฅ Utilization ๐Ÿ”ฅ

Utilization rates report how busy each GPU is over time, and can be used to determine how much an application is using the GPUs in the system.

Note: On MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported.
Note: During driver initialization when ECC is enabled one can see high GPU and Memory Utilization readings. This is caused by ECC Memory Scrubbing mechanism that is performed during driver initialization.
  • GPU โ€” Percent of time over the past sample period during which one or more kernels was executing on the GPU. The sample period may be between 1 second and 1/6 second depending on the product.
  • Memory โ€” Percent of time over the past sample period during which global (device) memory was being read or written. The sample period may be between 1 second and 1/6 second depending on the product.
  • Encoder โ€” Percent of time over the past sample period during which the GPU's video encoder was being used. The sampling rate is variable and can be obtained directly via the nvmlDeviceGetEncoderUtilization() API
  • Decoder โ€” Percent of time over the past sample period during which the GPU's video decoder was being used. The sampling rate is variable and can be obtained directly via the nvmlDeviceGetDecoderUtilization() API
  • JPEG โ€” Percent of time over the past sample period during which the GPU's JPEG decoder was being used. The sampling rate is variable and can be obtained directly via the nvmlDeviceGetJpgUtilization() API
  • OFA โ€” Percent of time over the past sample period during which the GPU's OFA (Optical Flow Accelerator) was being used. The sampling rate is variable and can be obtained directly via the nvmlDeviceGetOfaUtilization() API

๐ŸŽฌ Encoder Stats ๐ŸŽฌ

Encoder Stats report the count of active encoder sessions, along with the average Frames Per Second (FPS) and average latency (in microseconds) for all these active sessions on this device.

  • Active Sessions โ€” The total number of active encoder sessions on this device.
  • Average FPS โ€” The average Frame Per Sencond (FSP) of all active encoder sessions on this device.
  • Average Latency โ€” The average latency in microseconds of all active encoder sessions on this device.

๐Ÿ” DRAM Encryption Mode ๐Ÿ”

A flag that indicates whether DRAM Encryption support is enabled. May be either "Enabled" or "Disabled". Changes to DRAM Encryption mode require a reboot. Requires Inforom ECC object.

  • Current โ€” The DRAM Encryption mode that the GPU is currently operating under.
  • Pending โ€” The DRAM Encryption mode that the GPU will operate under after the next reboot.

๐Ÿ›ก๏ธ ECC Mode ๐Ÿ›ก๏ธ

A flag that indicates whether ECC support is enabled. May be either "Enabled" or "Disabled". Changes to ECC mode require a reboot. Requires Inforom ECC object version 1.0 or higher.

  • Current โ€” The ECC mode that the GPU is currently operating under.
  • Pending โ€” The ECC mode that the GPU will operate under after the next reboot.

๐Ÿ˜ญ ECC Errors ๐Ÿ˜ญ

NVIDIA GPUs can provide error counts for various types of ECC errors. Some ECC errors are either single or double bit, where single bit errors are corrected and double bit errors are uncorrectable. Texture memory errors may be correctable via resend or uncorrectable if the resend fails. These errors are available across two timescales (volatile and aggregate). Single bit ECC errors are automatically corrected by the HW and do not result in data corruption. Double bit errors are detected but not corrected. Please see the ECC documents on the web for information on compute application behavior when double bit errors occur. Volatile error counters track the number of errors detected since the last driver load. Aggregate error counts persist indefinitely and thus act as a lifetime counter.

A note about volatile counts: On Windows this is once per boot. On Linux this can be more frequent. On Linux the driver unloads when no active clients exist. Hence, if persistence mode is enabled or there is always a driver client active (e.g. X11), then Linux also sees per-boot behavior. If not, volatile counts are reset each time a compute app is run.

Tesla and Quadro products pre-volta can display total ECC error counts, as well as a breakdown of errors based on location on the chip. The locations are described below. Location-based data for aggregate error counts requires Inforom ECC object version 2.0. All other ECC counts require ECC object version 1.0.

  • Device Memory โ€” Errors detected in global device memory.
  • Register File โ€” Errors detected in register file memory.
  • L1 Cache โ€” Errors detected in the L1 cache.
  • L2 Cache โ€” Errors detected in the L2 cache.
  • Texture Memory โ€” Parity errors detected in texture memory.
  • Total โ€” Total errors detected across entire chip. Sum of Device Memory, Register File, L1 Cache, L2 Cache and Texture Memory.

On Turing the output is such:

  • SRAM Correctable โ€” Number of correctable errors detected in any of the SRAMs
  • SRAM Uncorrectable โ€” Number of uncorrectable errors detected in any of the SRAMs
  • DRAM Correctable โ€” Number of correctable errors detected in the DRAM
  • DRAM Uncorrectable โ€” Number of uncorrectable errors detected in the DRAM

On Ampere+ The categorization of SRAM errors has been expanded upon. SRAM errors are now categorized as either parity or SEC-DED (single error correctable/double error detectable) depending on which unit hit the error. A histogram has been added that categorizes what unit hit the SRAM error. Additionally a flag has been added that indicates if the threshold for the specific SRAM has been exceeded.

  • SRAM Uncorrectable Parity โ€” Number of uncorrectable errors detected in SRAMs that are parity protected
  • SRAM Uncorrectable SEC-DED โ€” Number of uncorrectable errors detected in SRAMs that are SEC-DED protected

๐Ÿงš Aggregate Uncorrectable SRAM Sources

okay so this is the deets on where those aggregate uncorrectable SRAM errors are actually coming from โ€” like, the receipts:

  • SRAM L2 โ€” errors that happened in the L2 cache ๐Ÿ’…
  • SRAM SM โ€” errors that happened in the SM
  • SRAM Microcontroller โ€” errors that happened in a microcontroller (PMU/GSP etc...)
  • SRAM PCIE โ€” errors that occurred in any PCIE related unit
  • SRAM Other โ€” errors happening in anything else not covered above ๐Ÿ™ˆ

If one of the repair flags is pending, check the GPU Recovery action and take the appropriate steps. (fr fr, don't skip that part.)

  • Channel Repair Pending โ€” tells you if a Channel repair is pending
  • TPC Repair Pending โ€” tells you if a TPC repair is pending
  • Unrepairable Memory โ€” tells you if there's unrepairable memory ๐Ÿ’€

๐ŸŽ€ Page Retirement

NVIDIA GPUs can retire pages of GPU device memory when they become unreliable. This can happen when multiple single bit ECC errors occur for the same page, or on a double bit ECC error. When a page is retired, the NVIDIA driver will hide it such that no driver, or application memory allocations can access it. (iconic behaviour honestly โ€” it just quietly ghosts the bad page โœจ)

  • Double Bit ECC โ€” the number of GPU device memory pages that have been retired due to a double bit ECC error.
  • Single Bit ECC โ€” the number of GPU device memory pages that have been retired due to multiple single bit ECC errors.
  • Pending โ€” checks if any GPU device memory pages are pending blacklist on the next reboot. Heads up: pages that are retired but not yet blacklisted can still be allocated, and may cause further reliability issues. ๐Ÿ˜ญ

๐Ÿฆ‹ Row Remapper

NVIDIA GPUs can remap rows of GPU device memory when they become unreliable. This can happen when a single uncorrectable ECC error or multiple correctable ECC errors occur on the same row. When a row is remapped, the NVIDIA driver will remap the faulty row to a reserved row. All future accesses to the row will access the reserved row instead of the faulty row. This feature is available on Ampere+ ๐Ÿ‘‘

  • Correctable Error โ€” the number of active row remappings due to correctable ECC errors.
  • Inactive Correctable Error โ€” the number of inactive correctable row remappings due to bank remappings or channel repairs.
  • Uncorrectable Error โ€” the number of active row remappings due to uncorrectable ECC errors.
  • Inactive Uncorrectable Error โ€” the number of inactive uncorrectable row remappings due to bank remappings or channel repairs.
  • Pending โ€” indicates whether or not a row is pending remapped. The GPU must be reset for the remapping to go into effect. ๐Ÿ”„
  • Remapping Failure Occurred โ€” indicates whether or not a row remapping has failed in the past.
  • Bank Remap Availability Histogram โ€” each memory bank has a fixed number of reserved rows that can be used for row remapping. The histogram will classify the remap availability of each bank into Maximum, High, Partial, Low and None. Maximum availability means that all reserved rows are available for remapping while None means that no reserved rows are available. Correctable row remappings don't count towards the availability histogram since they can be evicted by uncorrectable row remappings. Inactive row remappings also don't count since remap availability is restored by bank remapping or channel repair. ๐Ÿ’–

๐ŸŒธ Bank Remapper

NVIDIA GPUs can remap banks of GPU device memory when they become unreliable. This can happen when multiple uncorrectable ECC errors occur on the same bank. When a bank is remapped, the NVIDIA driver will remap the faulty bank to a reserved bank. All future accesses to the bank will access the reserved bank instead of the faulty bank. This feature is available on Rubin+. โญ

  • Active Remappings โ€” the number of bank remappings that are still active.
  • Inactive Remappings โ€” the number of bank remappings that are inactive due to channel repairs.
  • Pending โ€” indicates whether or not a bank is pending remapped. The GPU must be reset for the remapping to go into effect.
  • Group Remap Availability Histogram โ€” each memory group has one reserved bank that can be used for bank remapping. The histogram will classify the remap availability of each group into Max and None. Max availability means that the reserved bank is available for remapping while None means that the reserved bank is not available. Inactive bank remappings don't count towards the availability histogram since remap availability is restored by channel repair.

๐ŸŒก๏ธ Temperature

Readings from temperature sensors on the board. All readings are in degrees C. Not all products support all reading types. In particular, products in module form factors that rely on case fans or passive cooling do not usually provide temperature readings. See below for restrictions. ๐Ÿฅต

T.Limit: the T.Limit sensor measures the current margin in degree Celsius to the maximum operating temperature. As such it is not an absolute temperature reading rather a relative measurement.

Not all products support T.Limit sensor readings.

When supported, nvidia-smi reports the current T.Limit temperature as a signed value that counts down. A T.Limit temperature of 0 C or lower indicates that the GPU may optimize its clock based on thermal conditions. Further, when the T.Limit sensor is supported, available temperature thresholds are also reported relative to T.Limit (see below) instead of absolute measurements. ๐Ÿงš

  • GPU Current Temp โ€” the current average temperature of the GPU. For all discrete and S-class products.
  • GPU Current Max Temp โ€” the current temperature from the hottest part of the GPU. Not supported on all devices.
  • GPU Current T.Limit Temp โ€” current margin in degrees Celsius from the maximum GPU operating temperature.
  • GPU Shutdown Temp โ€” the temperature at which a GPU will shutdown. ๐Ÿ’€
  • GPU Shutdown T.Limit Temp Specification โ€” the T.Limit temperature below which a GPU may shutdown. Since shutdown can only triggered by the maximum GPU temperature it is possible for the current T.Limit to be more negative than this threshold.
  • GPU Slowdown Temp โ€” the temperature at which a GPU HW will begin optimizing clocks due to thermal conditions, in order to cool.
  • GPU Slowdown T.Limit Temp Specification โ€” the T.Limit temperature at or below which GPU HW may optimize its clocks for thermal conditions. Since this clock adjustment can only triggered by the maximum GPU temperature it is possible for the current T.Limit to be more negative than this threshold.
  • GPU Max Operating Temp โ€” the temperature at which GPU SW will optimize its clock for thermal conditions.
  • GPU Max Operating T.Limit Temp Specification โ€” the T.Limit temperature below which GPU SW will optimize its clock for thermal conditions.
  • GPU Target Temperature Specification โ€” the current target temperature for the GPU, in degrees Celsius. This is the temperature the GPU will attempt to maintain under load, when supported. Target temperature is user-configurable on supported devices using nvidia-smi options such as -gtt or --gpu-target-temp. Not supported on all devices.
  • Memory Current Temp โ€” current temperature of GPU memory. Only available on supported devices.
  • Memory Max Operating T.Limit Temp Specification โ€” the temperature at which GPU SW will optimize its memory clocks for thermal conditions. Only available on supported devices.

โšก GPU Power Readings

Power readings help to shed light on the current power usage of the GPU, and the factors that affect that usage. When power management is enabled the GPU limits power draw under load to fit within a predefined power envelope by manipulating the current performance state. See below for limits of availability. ๐Ÿ”ฅ

  • Average Power Draw โ€” the average power draw for the entire board for the last second, in watts. Only supported on Ampere (except GA100) or newer devices.
  • Instantaneous Power Draw โ€” the last measured power draw for the entire board, in watts.
  • GPU Ceiling Power Limit โ€” the GPU Ceiling Power limit determines the maximum power that the GPU can draw.
    • Current Power Limit โ€” current GPU Ceiling Power limit requested by software like nvidia-smi, in watts.
    • Requested Power Limit โ€” GPU Ceiling Power limit currently enforced by the power management algorithm, in watts.
    • Default Power Limit โ€” default GPU Ceiling Power limit, in watts.
  • GPU Base Power โ€” the GPU Base Power setting determines the maximum power that the GPU can draw without steering available power from another component (e.g. a supported NVIDIA CPU).
    • Current Base Power โ€” current GPU Base Power setting requested by software like nvidia-smi, in watts.
    • Requested Base Power โ€” GPU Base Power setting currently enforced by the power management algorithm, in watts.
    • Default Base Power โ€” default GPU Base Power setting, in watts.
    • Adaptive TGP Adjusted Base Power โ€” GPU Base Power limit assigned to this GPU when Adaptive TGP (Total Graphics Power) Mode is enabled, in watts. Valid only when Adaptive TGP Mode is active.
  • Min Power Limit โ€” the minimum value in watts that power limit can be set to.
  • Max Power Limit โ€” the maximum value in watts that power limit can be set to.

๐Ÿ’œ Module Power Readings

Power readings help to shed light on the current power usage of the Module, and the factors that affect that usage. A module is GPU + supported NVIDIA CPU + other components which consume power. When power management is enabled, the Module limits power draw under load to fit within a predefined power envelope by manipulating the current performance state. Supported on Hopper and newer datacenter products. ๐Ÿซถ

  • Average Power Draw โ€” the average power draw for the entire module for the last second, in watts.
  • Instantaneous Power Draw โ€” the last measured power draw for the entire module, in watts.
  • Requested Power Limit โ€” the power limit requested by software, in watts, for the whole module. Set by software such as nvidia-smi. Power Limit can be adjusted using -pl,--power-limit= switches with -s/--scope=1. ๐Ÿ’…
  • Enforced Power Limit โ€” this is the power ceiling the power management algorithm actually works with, in watts. The algorithm fiddles with the total module power draw so it stays under this number. Fun fact: this limit is the minimum of the various limits floating around, including the software limit listed above. ๐Ÿ’…
  • Default Power Limit โ€” the power ceiling the power management algorithm comes with out of the box, in watts. After a driver unload, Module Power Limit gets set back to this. It's giving "factory reset but make it watts". ๐ŸŽ€
  • Min Power Limit โ€” the smallest value in watts you can set the module power limit to.
  • Max Power Limit โ€” the biggest value in watts you can set the module power limit to.

๐ŸŒˆ GPU Memory Power Readings ๐ŸŒˆ

The tea on GPU memory power consumption. ๐Ÿ”ฅ

  • Average Power Draw โ€” the average power draw for the GPU memory subsystem over the last second, in watts.
  • Instantaneous Power Draw โ€” the last measured power draw for the GPU memory subsystem, in watts. Like, right-now now.

โœจ Power Smoothing โœจ

Definitions and the values that are currently set. This feature lets users tune power parameters to minimize power fluctuations in large datacenter environments โ€” yes bestie, this is the datacenter girlie feature. ๐Ÿข๐Ÿ’–

  • Enabled โ€” the value is "Yes" if the feature is enabled and "No" if it's not enabled.
  • Delayed Power Smoothing Supported โ€” the value is "Yes" if the Delayed Power Smoothing feature is supported and "No" if it's not supported.
  • Privilege Level โ€” the current privilege for the user. The value is 0, 1 or 2. Lowkey important: the higher the privilege level, the more information the user gets access to. ๐Ÿ‘‘
  • Immediate Ramp Down โ€” values are "Enabled" or "Disabled". Tells you whether the ramp down hysteresis value will be honored (when enabled) or ignored (when disabled).
  • Current TMP โ€” the last read value of the Total Module Power, in watts.
  • Current TMP FLoor โ€” the last read value of the Total Module Power floor, in watts.
  • Max % TMP Floor โ€” the highest percentage value that the Percent TMP Floor can be set to.
  • Min % TMP Floor โ€” the lowest percentage value that the Percent TMP Floor can be set to.
  • HW Lifetime % Remaining โ€” okay so as this feature gets used, the circuitry driving it wears down ๐Ÿ˜ญ, and this value gives you the percentage of the remaining lifetime of this hardware. Protect her!!
  • Current Primary Power Floor โ€” the current value of the primary power floor, in watts. This one is calculated by doing TMP Ceiling * (% TMP FLoor value). Math era ๐Ÿงฎโœจ
  • Current Secondary Power Floor โ€” the current value of the secondary power floor, in watts. This is the power floor that gets applied during active workload periods on the GPU when the primary floor activation window multiplier is set to a non-zero value.
  • Min Primary Floor Activation Offset โ€” the minimum primary floor activation offset the driver accepts, specified in watts. This is a static field.
  • Min Primary Floor Activation Point โ€” the minimum absolute raw value, specified in watts, that the driver will use for switching between the primary and secondary floor. This point is calculated as 'secondary power floor + primary floor activation offset', and then the computed value is floored to 'min primary floor activation point' by the driver at run time. It exists so you don't accidentally set the switch point too low. Safety girlie ๐Ÿ›ก๏ธ
  • Window Multiplier โ€” the multiplier unit, specified in ms, for the other multipliers in the profile (that's the primary floor activation window multiplier and the primary floor target window multiplier). Static field, no cap.
  • Number of Preset Profiles โ€” the total number of Preset Profiles supported.

๐Ÿฆ‹ Current Profile ๐Ÿฆ‹

The values for the currently active power smoothing preset profile. ๐Ÿ’ซ

  • % TMP Floor โ€” the percentage of the TMP Ceiling that's used to set the TMP floor, for the currently active preset profile. Example time, iykyk: if max TMP is 1000 W, and the % TMP floor is 50%, then the min TMP value will be 500 W. This value lives in the range [Min % TMP Floor, Max % TMP Floor].
  • Ramp Up Rate โ€” the ramp up rate, measured in mW/s, for the currently active preset profile.
  • Ramp Down Rate โ€” the ramp down rate, measured in mW/s, for the currently active preset profile.
  • Ramp Down Hysteresis โ€” the ramp down hysteresis value, in ms, for the currently active preset profile.
  • Secondary Power Floor โ€” the secondary power floor, measured in watts, for the currently active preset profile. This is the power floor that will be applied during active workload periods on the GPU when the primary floor activation window multiplier is set to a non-zero value.
  • Primary Floor Activation Window Multiplier โ€” the time multiplier for the activation moving average window size, for the currently active preset profile. This is the 'X' ms time multiplier for the activation moving average window size. The activation moving average gets compared against the (secondary floor + primary floor activation offset value) to figure out if the controller should switch from the secondary floor to the primary floor. Heads up: setting this to 0 will disable switching to the secondary floor. ๐Ÿ’€
  • Primary Floor Target Window Multiplier โ€” the time multiplier for the target moving average window size, for the currently active preset profile. This is the 'X' ms time multiplier for the target moving average window size. When it's set to a non-zero value, the target moving average power determines the primary floor. When it's set to 0, the driver will use the Floor percentage instead to derive the primary floor.
  • Primary Floor Activation Offset โ€” the primary Floor Activation Offset, measured in watts, for the currently active preset profile. If the target moving average falls below the secondary floor plus this offset, the primary floor gets activated. โšก
  • Active Preset Profile Number โ€” the number of the active preset profile.

๐Ÿ’œ Admin Overrides ๐Ÿ’œ

Admin overrides let users with sufficient permissions preempt the values of the currently active preset profile. So if an admin override is set for one of the fields, then that value gets used instead of any other configured value. Main character override energy, honestly. ๐Ÿ‘‘

  • % TMP Floor โ€” the admin override value for % TMP Floor. This value is in the range [Min % TMP Floor, Max % TMP Floor].
  • Ramp Up Rate โ€” the admin override value for ramp up rate, measured in mW/s.
  • Ramp Down Rate โ€” the admin override value for ramp down rate, measured in mW/s.
  • Ramp Down Hysteresis โ€” the admin override value for ramp down hysteresis value, in ms.
  • Secondary Power Floor โ€” the admin override value for secondary power floor, measured in watts. This is the power floor that will be applied during active workload periods on the GPU when the primary floor activation window multiplier is set to a non-zero value.
  • Primary Floor Activation Window Multiplier โ€” the admin override value for primary time multiplier for the activation moving average window size. This is the 'X' ms time multiplier for the activation moving average window size. The activation moving average is compared against the (secondary floor + primary floor activation offset value) to determine if the controller should switch from the secondary floor to the primary floor. Setting this to 0 will disable switching to the secondary floor. ๐Ÿšซ
  • Primary Floor Target Window Multiplier โ€” the admin override value for primary time multiplier for the target moving average window size. This is the 'X' ms time multiplier for the target moving average window size. When set to a non-zero value, the target moving average power determines the primary floor. When set to 0, the driver will use the Floor percentage instead to derive the primary floor.
  • Primary Floor Activation Offset โ€” the admin override value for primary Floor Activation Offset, measured in watts. If the target moving average falls below the secondary floor plus this offset, the primary floor will be activated.
  • State-Of-Charge Power Smoothing โ€” tells you whether the State-Of-Charge Power Smoothing feature is enabled (Enabled/Disabled). ๐Ÿ”‹

๐ŸŒธ Workload Power Profiles ๐ŸŒธ

Pre-tuned GPU profiles exist to give you immediate, optimized configurations for Datacenter use cases. This section includes info about the currently requested or enforced power profiles. ๐Ÿ—๏ธโœจ

  • Requested Profiles โ€” the list of user requested profiles.
  • Enforced Profiles โ€” okay so since a lot of the profiles have conflicting goals, some configurations of requested profiles are just incompatible. ๐Ÿ˜ญ This is the list of the requested profiles that are currently enforced.

๐ŸŽ€ EDPp Multiplier ๐ŸŽ€

The EDPp multiplier expressed as a percentage. This feature is meant for system administrators and cannot be configured via NVML or nvidia-smi. Not yours to touch, bestie โ€” admin business only. ๐Ÿ™ˆ

โญ Clocks โญ

The current frequency at which parts of the GPU are running. All readings are in MHz. Important caveat: it's totally possible for clocks to report a lower frequency than the lowest frequency that can be set by SW, because of HW optimizations in certain scenarios. So don't panic if the number looks small. ๐Ÿซถ

  • Graphics โ€” current frequency of graphics (shader) clock.
  • SM โ€” current frequency of the SM (Streaming Multiprocessor) clock. ๐Ÿ’…
  • Memory โ€” current frequency of the memory clock. ๐Ÿง 
  • Video โ€” current frequency of the video (encoder + decoder) clocks. ๐ŸŽฌ

Applications Clocks ๐ŸŽ€

โš ๏ธ Applications Clocks will be removed in a future CUDA release. Please use -lmc/-lgc for locking memory/graphics clocks and -rmc/-rgc to reset memory/graphics clocks. periodt ๐Ÿ’–

User specified frequency at which applications will be running at. Can be changed with [-ac | --applications-clocks] switches.

  • Graphics โ€” user specified frequency of graphics (shader) clock. โœจ
  • Memory โ€” user specified frequency of memory clock. ๐ŸŒธ

Default Applications Clocks ๐Ÿซถ

Default frequency at which applications will be running at. Application clocks can be changed with [-ac | --applications-clocks] switches. Application clocks can be set to default using [-rac | --reset-applications-clocks] switches. ๐ŸŽ€

  • Graphics โ€” default frequency of applications graphics (shader) clock. ๐Ÿฆ‹
  • Memory โ€” default frequency of applications memory clock. ๐Ÿ’œ

Deferred Clocks โณ

Deferred clocks are clocks that will be applied after the next driver load.

  • Memory โ€” the Memory Clock value in MHz that takes effect the next time the GPU is initialized. This can be guaranteed by unloading and reloading the kernel module. ๐Ÿ”ฅ

Max Clocks ๐Ÿ‘‘

Maximum frequency at which parts of the GPU are designed to run. All readings are in MHz. Current P0 clocks (reported in Clocks section) can differ from max clocks by few MHz. iykyk ๐Ÿ’…

  • Graphics โ€” maximum frequency of graphics (shader) clock. โญ
  • SM โ€” maximum frequency of SM (Streaming Multiprocessor) clock. ๐ŸŒˆ
  • Memory โ€” maximum frequency of memory clock. ๐Ÿ“
  • Video โ€” maximum frequency of video (encoder + decoder) clock. ๐ŸŽ€

Max Customer Boost Clocks ๐Ÿš€

Maximum customer boost frequency at which parts of the GPU are designed to run. All readings are in MHz. โœจ

  • Graphics โ€” maximum customer boost frequency of graphics (shader) clock. ๐Ÿ‘‘

Clock Policy ๐Ÿ•ฐ๏ธ

User-specified settings for automated clocking changes such as auto boost. This is basically the vibe check for your GPUโ€™s clock behavior. ๐Ÿ’ซ

  • Auto Boost โ€” Indicates whether auto boost mode is currently enabled for this GPU (On) or disabled for this GPU (Off). Shows (N/A) if boost is not supported. Auto boost allows dynamic GPU clocking based on power, thermal and utilization. When auto boost is disabled the GPU will attempt to maintain clocks at precisely the Current Application Clocks settings (whenever a CUDA context is active). With auto boost enabled the GPU will still attempt to maintain this floor, but will opportunistically boost to higher clocks when power, thermal and utilization headroom allow. This setting persists for the life of the CUDA context for which it was requested. Apps can request a particular mode either via an NVML call (see NVML SDK) or by setting the CUDA environment variable CUDA_AUTO_BOOST. This feature is deprecated and will be removed in a future CUDA release. ๐Ÿ˜ญ
  • Auto Boost Default โ€” Indicates the default setting for auto boost mode, either enabled (On) or disabled (Off). Shows (N/A) if boost is not supported. Apps will run in the default mode if they have not explicitly requested a particular mode. Note: Auto Boost settings can only be modified if "Persistence Mode" is enabled, which is NOT by default. This feature is deprecated and will be removed in a future CUDA release. ๐Ÿ’€

DLA Clocks ๐Ÿง 

Deep Learning Accelerator (DLA) clocks control the processing speed of the DLA cores which are integrated into certain NVIDIA hardware specialized for deep learning workloads. main character energy fr fr ๐Ÿ’œ

  • Overclock Mem โ€” memory clock value in MHz for DLA overclock. โšก
  • Engine โ€” current DLA engine clock value in MHz. ๐ŸŒธ
  • Max Engine โ€” maximum frequency of DLA engine clock in MHz. ๐Ÿฆ‹
  • Max Overclock Engine โ€” maximum overclock frequency of DLA engine clock in MHz. ๐Ÿ”ฅ

Fabric ๐Ÿงต

GPU Fabric information ๐Ÿ‘€

  • State โ€” indicates the state of the GPU's handshake with the nvidia-fabricmanager (a.k.a. GPU fabric probe). Possible values: Completed, In Progress, Not Started, Not supported. โœจ
  • Status โ€” status of the GPU fabric probe response from the nvidia-fabricmanager. Possible values: NVML_SUCCESS or one of the failure codes. ๐Ÿ’…
  • Clique ID โ€” a clique is a set of GPUs that can communicate to each other over NVLink. The GPUs belonging to the same clique share the same clique ID. Clique ID will only be valid for NVLink multi-node systems. ๐ŸŒˆ
  • Cluster UUID โ€” UUID of an NVLink multi-node cluster to which this GPU belongs. Cluster UUID will be zero for NVLink single-node systems. ๐ŸŽ€
  • Health โ€” hereโ€™s the breakdown, bestie:
    • Summary โ€” Summary of Fabric Health <Healthy, Unhealthy, Limited Capacity> ๐Ÿ’–
    • Bandwidth โ€” is the GPU NVLink bandwidth degraded <Degraded/Full> ๐Ÿฆ‹
    • Route Recovery in progress โ€” is NVLink route recovery in progress <True/False> โณ
    • Route Unhealthy โ€” is NVLink route recovery failed or aborted <True/False> ๐Ÿ’€
    • Access Timeout Recovery โ€” is NVLink access timeout recovery in progress <True/False> ๐Ÿ˜ญ
    • Incorrect Configuration โ€” Incorrect Configuration status <Incorrect SystemGuid, Incorrect Chassis Serial Number, No Partition, Insufficient Nvlink Resources, Incompatible GPU Firmware, Invalid Location, GPU State Invalid, None> ๐Ÿšจ
    • Partition Assigned โ€” is the GPU NVLink partition correctly assigned <True/False> โœ…
    • Global Fabric Manager State โ€” is the GFM state connected or disconnected <Connected/Disconnected> ๐Ÿ”Œ

Processes ๐Ÿ‘ฏ

List of processes having Compute, Graphics, or Other resource usage on the device. Compute processes are reported on all the fully supported products. Reporting for Graphics processes is limited to the supported products starting with Kepler architecture. Other processes include both traditional context-based processes and processes using context-less GPU resource allocation (e.g., VMM APIs). ๐Ÿซถ

Each Entry is of format:

"<GPU Index> <GI Index> <CI Index> <PID> <Type> <Process Name> <GPU Memory Usage>"
  • GPU Index โ€” represents NVML Index of the device. ๐Ÿ”ข
  • GPU Instance Index โ€” represents GPU Instance Index of the MIG device (if enabled). ๐Ÿงฉ
  • Compute Instance Index โ€” represents Compute Instance Index of the MIG device (if enabled). ๐Ÿง 
  • PID โ€” represents Process ID corresponding to the active Compute, Graphics, or Other process utilizing GPU resources. ๐Ÿชช
  • Type โ€” displayed as "C" for Compute Process, "G" for Graphics Process, "M" for MPS ("Multi-Process Service") Compute Process, "O" for Other Process (processes using GPU resources through RM subdevice allocation, including context-less operations), and "C+G" or "M+C" for processes having both Compute and Graphics or MPS Compute and Compute contexts. ๐Ÿท๏ธ
  • Process Name โ€” represents process name for the Compute, MPS Compute, Graphics, or Other process. If all processes using GPU resources have exited but a forked child still holds an open device handle, nvidia-smi displays "Unidentified processes found" instead of listing individual process entries. Use lsof on Linux to identify processes using NVIDIA devices. ๐Ÿ”
  • GPU Memory Usage โ€” amount of memory used by the GPU context, which represents FB memory usage for discrete GPUs or system memory usage for integrated GPUs. Not available on Windows when running in WDDM mode because Windows KMD manages all the memory not NVIDIA driver. ๐Ÿ’พ

Device Monitoring ๐Ÿ‘€

The nvidia-smi dmon command-line is used to monitor one or more GPUs (up to 16 devices) plugged into the system. This tool allows the user to see one line of monitoring data per monitoring cycle. The output is in concise format and easy to interpret in interactive mode. The output data per line is limited by the terminal size. It is supported on Tesla, GRID, Quadro and limited GeForce products for Kepler or newer GPUs under bare metal 64 bits Linux. ๐Ÿงโœจ

By default, the monitoring data includes Power Usage, Temperature, SM clocks, Memory clocks and Utilization values for SM, Memory, Encoder, Decoder, JPEG and OFA. It can also be configured to report other metrics such as frame buffer memory usage, bar1 memory usage, power/thermal violations and aggregate single/double bit ecc errors. If any of the metric is not supported on the device or any other error in fetching the metric is reported as "-" in the output data. The user can also configure monitoring frequency and the number of monitoring iterations for each run. There is also an option to include date and time at each line. All the supported options are exclusive and can be used together in any order. ๐ŸŽ›๏ธ

Note: On MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported. ๐Ÿซ 

Usage:

  1. Default with no arguments ๐ŸŒฑ
nvidia-smi dmon

Monitors default metrics for up to 16 supported devices under natural enumeration (starting with GPU index 0) at a frequency of 1 sec. Runs until terminated with ^C. โŒจ๏ธ

  1. Select one or more devices ๐ŸŽฏ
nvidia-smi dmon -i <device1,device2, .. , deviceN>

Reports default metrics for the devices selected by comma separated device list. The tool picks up to 16 supported devices from the list under natural enumeration (starting with GPU index 0). ๐Ÿ’…

  1. Select metrics to be displayed ๐Ÿ“Š
nvidia-smi dmon -s <metric_group>

<metric_group> can be one or more from the following:

  • p โ€” Power Usage (in Watts) and GPU/Memory Temperature (in C) if supported. ๐Ÿ”ฅ
  • u โ€” Utilization (SM, Memory, Encoder, Decoder, JPEG and OFA Utilization in %). ๐Ÿ“ˆ
  • c โ€” Proc and Mem Clocks (in MHz). ๐Ÿ•ฐ๏ธ
  • v โ€” Power Violations (in %) and Thermal Violations (as a boolean flag). โš ๏ธ
  • m โ€” Frame Buffer, Bar1 and Confidential Compute protected memory usage (in MB). ๐Ÿ’พ
  • e โ€” ECC (Number of aggregated single bit, double bit ecc errors) and PCIe Replay errors. ๐Ÿงฎ
  • t โ€” PCIe Rx and Tx Throughput, in MB/s (Maxwell and above) ๐Ÿ”ฅ
  • n โ€” Noise, aka MMA Stall % (Rubin and above). Heads up bestie: the value gets shown as a truncated integer, so literally any stall percentage under 1% shows up as 0. No rounding, no mercy. ๐Ÿ˜ญ

4) Configure monitoring iterations

nvidia-smi dmon -c <number of samples>

Shows you data for exactly the number of samples you asked for, then dips. ๐Ÿซถ

5) Configure monitoring frequency

nvidia-smi dmon -d <time in secs>

Collects and displays at every single monitoring interval you set โ€” forever, until you hit Ctrl+C. It's giving commitment. ๐Ÿ’…

6) Display date

nvidia-smi dmon -o D

Slaps the date in YYYYMMDD format right at the front of your monitoring data. โœจ

7) Display time

nvidia-smi dmon -o T

Prepends your monitoring data with the time in HH:MM:SS format. Iconic. ๐ŸŽ€

8) Select GPM metrics to be displayed

nvidia-smi dmon --gpm-metrics <gpmMetric1,gpmMetric2,...,gpmMetricN>

<gpmMetricX> โ€” go look up nvmlGpmMetricId_t in the NVML header file, that's where the lore lives. ๐Ÿ“–

9) Select which level of GPM metrics to be displayed

nvidia-smi dmon --gpm-options <gpmMode>

<gpmMode> can be one of these, and yes you have options:

  • d โ€” display Device Level GPM metrics
  • m โ€” display MIG Level GPM metrics
  • dm โ€” display Device and MIG Level GPM metrics
  • md โ€” display Device and MIG Level GPM metrics, same thing as dm (twins fr fr)

10) Modify output format

nvidia-smi dmon --format <formatSpecifier>

<formatSpecifier> can be any comma separated combo of the following:

  • csv โ€” format dmon output as CSV
  • nounit โ€” remove the unit line from dmon output
  • noheader โ€” remove the header line from dmon output

11) Help Information

nvidia-smi dmon -h

Displays help information for using the command line. Your safety net ๐Ÿ’–


๐ŸŒธ Daemon (EXPERIMENTAL) ๐ŸŒธ

Okay so nvidia-smi daemon spins up a background process to monitor one or more GPUs plugged into the system. It watches the GPUs you requested every monitoring cycle and logs the file in compressed format โ€” either at the path you provide or the default spot at /var/log/nvstats/. The log file gets the system's date appended to it, in the format nvstats-YYYYMMDD. The flush operation to the log file happens every alternate monitoring cycle, jsyk. The daemon also logs its own PID at /var/run/nvsmi.pid. ๐Ÿ‘‘

By default, the monitoring data it persists includes Power Usage, Temperature, SM clocks, Memory clocks, and Utilization values for SM, Memory, Encoder, Decoder, JPEG and OFA. But the daemon tools can also be configured to record other metrics โ€” frame buffer memory usage, bar1 memory usage, power/thermal violations, and aggregate single/double bit ecc errors. The default monitoring cycle is set to 10 secs and you can configure it via command-line. It's supported on Tesla, GRID, Quadro and GeForce products for Kepler or newer GPUs under bare metal 64 bits Linux. ๐Ÿง

โš ๏ธ The daemon requires root privileges to run, and only supports running a single instance on the system.

All of the supported options are exclusive and can be used together in any order. And a note, bestie: on MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported. ๐Ÿ™ˆ

Usage:

1) Default with no arguments

nvidia-smi daemon

Runs in the background to monitor default metrics for up to 16 supported devices under natural enumeration (starting with GPU index 0) at a frequency of 10 sec. The date stamped log file is created at /var/log/nvstats/. Set it and forget it ๐Ÿ’…

2) Select one or more devices

nvidia-smi daemon -i <device1,device2, .. , deviceN>

Runs in the background to monitor default metrics for the devices you picked via comma separated device list. The tool picks up to 16 supported devices from that list under natural enumeration (starting with GPU index 0). ๐ŸŽฏ

3) Select metrics to be monitored

nvidia-smi daemon -s <metric_group>

<metric_group> can be one or more from the following:

  • p โ€” Power Usage (in Watts) and GPU/Memory Temperature (in C) if supported
  • u โ€” Utilization (SM, Memory, Encoder, Decoder, JPEG and OFA Utilization in %)
  • c โ€” Proc and Mem Clocks (in MHz)
  • v โ€” Power Violations (in %) and Thermal Violations (as a boolean flag)
  • m โ€” Frame Buffer, Bar1 and Confidential Compute protected memory usage (in MB)
  • e โ€” ECC (Number of aggregated single bit, double bit ecc errors) and PCIe Replay errors
  • t โ€” PCIe Rx and Tx Throughput in MB/s (Maxwell and above)
  • n โ€” Noise (MMA Stall %) (Rubin and above). The value is displayed as a truncated integer, so any stall percentage less than 1% will be shown as 0. ๐Ÿ˜ญ

4) Configure monitoring frequency

nvidia-smi daemon -d <time in secs>

Collects data at every specified monitoring interval until terminated. It does not stop. It has no chill. ๐Ÿ”ฅ

5) Configure log directory

nvidia-smi daemon -p <path of directory>

The log files are created at the directory you specify. ๐Ÿ—‚๏ธ

6) Configure log file name

nvidia-smi daemon -j <string to append log file name>

This command-line appends the log file name with the string you provide. Personalization era โœจ

7) Terminate the daemon

nvidia-smi daemon -t

This command-line uses the stored PID (at /var/run/nvsmi.pid) to terminate the daemon. It makes the best effort to stop the daemon and offers no guarantees for its termination. In case the daemon isn't terminated, you can manually terminate it by sending a kill signal to the daemon. ๐Ÿ’€

๐Ÿšจ Performing a GPU reset operation (via nvidia-smi) requires all GPU processes to be exited, including the daemon. Users who have the daemon open will see an error to the effect that the GPU is busy. So likeโ€ฆ actually kill it first, bestie.

8) Help Information

nvidia-smi daemon -h

Displays help information for using the command line. ๐Ÿซถ


๐Ÿฆ‹ Replay Mode (EXPERIMENTAL) ๐Ÿฆ‹

The nvidia-smi replay command-line is used to extract/replay all or parts of a log file generated by the daemon. By default, the tool tries to pull metrics such as Power Usage, Temperature, SM clocks, Memory clocks and Utilization values for SM, Memory, Encoder, Decoder, JPEG and OFA. The replay tool can also fetch other metrics such as frame buffer memory usage, bar1 memory usage, power/thermal violations and aggregate single/double bit ecc errors. ๐Ÿ“ผ

There's an option to select a set of metrics to replay โ€” and if any of the requested metrics isn't maintained or was logged as not-supported, then it's shown as - in the output. The format of data produced by this mode is such that the user is running the device monitoring utility interactively. The command line requires the mandatory option -f to specify the complete path of the log filename, and all the other supported options are exclusive and can be used together in any order. โœจ

โš ๏ธ Note: on MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported. Same energy as the daemon, different day ๐Ÿ™ˆ

Usage:

1) Specify log file to be replayed

nvidia-smi replay -f <log file name>

Fetches monitoring data from the compressed log file and lets you see one line of monitoring data (default metrics with time-stamp) for each monitoring iteration stored in the log file. A new line of monitoring data is replayed every other second, irrespective of the actual monitoring frequency maintained at the time of collection. It's displayed till the end of file or until you terminate it with Ctrl+C. ๐ŸŽฌ

2) Filter metrics to be replayed

nvidia-smi replay -f <path to log file> -s <metric_group>

<metric_group> can be one or more from the following:

  • p โ€” Power Usage (in Watts) and GPU/Memory Temperature (in C) if supported
  • u โ€” Utilization (SM, Memory, Encoder, Decoder, JPEG and OFA Utilization in %)
  • c โ€” Proc and Mem Clocks (in MHz)
  • v โ€” Power Violations (in %) and Thermal Violations (as a boolean flag)
  • m โ€” Frame Buffer, Bar1 and Confidential Compute protected memory usage (in MB)
  • e โ€” ECC (Number of aggregated single bit, double bit ecc errors) and PCIe Replay errors
  • t โ€” PCIe Rx and Tx Throughput in MB/s (Maxwell and above)
  • n โ€” Noise (MMA Stall %) (Rubin and above). The value is displayed as a truncated integer, so any stall percentage less than 1% will be shown as 0. ๐Ÿ˜ญ

3) Limit replay to one or more devices

nvidia-smi replay -f <log file> -i <device1,device2, .. , deviceN>

Limits reporting of the metrics to the set of devices selected by comma separated device list. The tool skips any of the devices that aren't maintained in the log file. ๐ŸŽฏ

4) Restrict the time frame between which data is reported

nvidia-smi replay -f <log file> -b <start time in HH:MM:SS format> -e <end time in HH:MM:SS format>

This option lets the data be limited between the specified time range. Specifying time as 0 with the -b or -e option implies start or end of file respectively. Very demure, very timezone-free โฐ

5) Redirect replay information to a log file

nvidia-smi replay -f <log file> -r <output file name>

This option takes a log file as input and extracts the information related to default metrics into the specified output file. ๐Ÿ“

6) Help Information

nvidia-smi replay -h

Displays help information for using the command line.


๐ŸŽ€ Process Monitoring ๐ŸŽ€

Okay bestie, nvidia-smi pmon is the one that watches your processes โ€” it monitors compute and graphics processes running on one or more GPUs (up to 16 devices) plugged into the system. It lets you see the statistics for all the running processes on each device at every monitoring cycle. The output is in concise format and easy to interpret in interactive mode. Heads up: the output data per line is limited by the terminal size.

It's supported on Tesla, GRID, Quadro and limited GeForce products for Kepler or newer GPUs under bare metal 64 bits Linux.

By default, the monitoring data for each process includes the pid, command name and average utilization values for SM, Memory, Encoder and Decoder since the last monitoring cycle. It can also be configured to report frame buffer memory usage for each process. If there is no process running for the device, then all the metrics are reported as - for the device. If any of the metric is not supported on the device or any other error in fetching the metric, that's also reported as - in the output data. ๐Ÿ˜ญ

You can also configure monitoring frequency and the number of monitoring iterations for each run. There's also an option to include date and time at each line. All the supported options are exclusive and can be used together in any order. โœจ

Note: On MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported. ๐Ÿ’€

Usage ๐Ÿ’…

1) Default with no arguments

nvidia-smi pmon

Monitors all the processes running on each device for up to 16 supported devices under natural enumeration (starting with GPU index 0) at a frequency of 1 sec. Runs until terminated with ^C.

2) Select one or more devices

nvidia-smi pmon -i <device1,device2, .. , deviceN>

Reports statistics for all the processes running on the devices selected by comma separated device list. The tool picks up to 16 supported devices from the list under natural enumeration (starting with GPU index 0).

3) Select metrics to be displayed

nvidia-smi pmon -s <metric_group>

<metric_group> can be one or more from the following:

  • u โ€” Utilization (SM, Memory, Encoder, Decoder, JPEG, and OFA Utilization for the process in %). Reports average utilization since last monitoring cycle.
  • m โ€” Frame Buffer and Confidential Compute protected memory usage (in MB). Reports instantaneous value for memory usage.

4) Configure monitoring iterations

nvidia-smi pmon -c <number of samples>

Displays data for specified number of samples and exit.

5) Configure monitoring frequency

nvidia-smi pmon -d <time in secs>

Collects and displays data at every specified monitoring interval until terminated with ^C. The monitoring frequency must be between 1 to 10 secs.

6) Display date

nvidia-smi pmon -o D

Prepends monitoring data with date in YYYYMMDD format.

7) Display time

nvidia-smi pmon -o T

Prepends monitoring data with time in HH:MM:SS format.

8) Help Information

nvidia-smi pmon -h

Displays help information for using the command line.


๐ŸŒ Topology ๐ŸŒ

This one lists topology information about the system's GPUs: how they connect to each other, their CPU and memory affinities, plus qualified NICs capable of RDMA. It's giving map of the whole friend group energy fr fr. ๐Ÿ—บ๏ธ

Note: On some systems, a NIC is used as a PCI bridge for the NVLINK switches and is not useful from a networking or RDMA point of view. The nvidia-smi topo command will filter the NIC's ports/PCIe sub-functions out of the topology matrix by examining the NIC's sysfs entries. On some kernel versions, nvidia-smi requires root privileges to read these sysfs entries. ๐Ÿ‘‘

Usage

Topology connections and affinities matrix between the GPUs and NICs in the system

nvidia-smi topo -m

Displays a matrix of connections between all GPUs and NICs (including their data-direct devices if applicable) in the system along with CPU/memory affinities for the GPUs with the following legend:

Legend:
 X = Self
 SYS = Connection traversing PCIe as well as the SMP interconnect
between NUMA nodes (e.g., QPI/UPI)
 NODE = Connection traversing PCIe as well as the interconnect between
PCIe Host Bridges within a NUMA node
 PHB = Connection traversing PCIe as well as a PCIe Host Bridge
(typically the CPU)
 PXB = Connection traversing multiple PCIe switches (without traversing
the PCIe Host Bridge)
 PIX = Connection traversing a single PCIe switch NV# = Connection
traversing a bonded set of # NVLinks
Note: This command may also display bonded NICs which may not be RDMA capable.
nvidia-smi topo -mp

Displays a matrix of PCI-only connections between all GPUs and NICs in the system along with CPU/memory affinities for the GPUs with the same legend as the nvidia-smi topo -m command. This command excludes NVLINK connections and shows PCI connections between GPUs.

nvidia-smi topo -c <CPU number>

Shows all the GPUs with an affinity to the specified CPU number.

nvidia-smi topo -n <traversal_path> -i <deviceID>

Shows all the GPUs connected with the given GPU using the specified traversal path. The traversal path values are:

  • 0 โ€” A single PCIe switch on a dual GPU board
  • 1 โ€” A single PCIe switch
  • 2 โ€” Multiple PCIe switches
  • 3 โ€” A PCIe host bridge
  • 4 โ€” An on-CPU interconnect link between PCIe host bridges
  • 5 โ€” An SMP interconnect link between NUMA nodes
nvidia-smi topo -p -i <deviceID1>,<deviceID2>

Shows the most direct PCIe path traversal for a given pair of GPUs.

nvidia-smi topo -p2p <capability>

Shows the P2P status between all GPUs, given a capability. Capability values are:

  • r โ€” p2p read capability
  • w โ€” p2p write capability
  • n โ€” p2p nvlink capability
  • a โ€” p2p atomics capability
  • p โ€” p2p pcie capability
nvidia-smi topo -C -i <deviceID>

Shows the NUMA ID of the nearest CPU for a GPU represented by the device ID.

nvidia-smi topo -M -i <deviceID>

Shows the NUMA ID of the nearest memory for a GPU represented by the device ID.

nvidia-smi topo -gnid -i <deviceID>

Shows the NUMA ID of the GPU represented by the device ID, if applicable. Displays N/A otherwise.

nvidia-smi topo -nvme

Displays a matrix of PCI connections between all GPUs and NVME devices in the system with the following legend:

Legend:
 X = Self
 SYS = Connection traversing PCIe as well as the SMP interconnect
between NUMA nodes (e.g., QPI/UPI)
 NODE = Connection traversing PCIe as well as the interconnect between
PCIe Host Bridges within a NUMA node
 PHB = Connection traversing PCIe as well as a PCIe Host Bridge
(typically the CPU)
 PXB = Connection traversing multiple PCIe bridges (without traversing
the PCIe Host Bridge)
 PIX = Connection traversing at most a single PCIe bridge
nvidia-smi topo -cpu

Displays CPU/MEM affinity and NUMA node ID for all GPUs in the system. The output shows NUMA Affinity (memory), GPU NUMA ID, and CPU Affinity columns. If there is no overlap between cores in the current cgroup and the GPU affinity, N/A is displayed.

nvidia-smi topo -gpu

Displays a GPU-GPU connectivity matrix showing the connections between GPUs in the system. This matrix uses fixed-width spacing and includes the following legend:

Legend:
 X = Self
 SYS = Connection traversing PCIe as well as the SMP interconnect
between NUMA nodes (e.g., QPI/UPI)
 NODE = Connection traversing PCIe as well as the interconnect between
PCIe Host Bridges within a NUMA node
 PHB = Connection traversing PCIe as well as a PCIe Host Bridge
(typically the CPU)
 PXB = Connection traversing multiple PCIe bridges (without traversing
the PCIe Host Bridge)
 PIX = Connection traversing at most a single PCIe bridge
 NV# = Connection traversing a bonded set of # NVLinks
nvidia-smi topo -nic

Displays a GPU-NIC connectivity matrix showing the connections between GPUs and NICs in the system. Includes an enhanced NIC legend showing:

  • ibdev: InfiniBand device name
  • netdev: Network device name (from sysfs)
  • PCI: PCI bus address
  • SLOT: PCIe slot number (from sysfs, if available)

The matrix uses the same legend as the nvidia-smi topo -gpu command.

nvidia-smi topo -all

Displays a complete topology matrix showing connections between all devices: GPUs, NICs, and NVMe devices. This command combines the information from all other topology commands and includes CPU/MEM affinity and NUMA information for GPUs. Uses fixed-width spacing for improved readability and machine parsing. Includes enhanced NIC and NVMe legends. ๐Ÿ‘‘


The nvidia-smi nvlink command-line is used to manage the GPU's Nvlinks. It provides options to set and query Nvlink information. Chain-link fence but make it silicon. โ›“๏ธ

Usage

1) Display help menu

nvidia-smi nvlink -h

Displays help menu for using the command-line.

2) List one or more GPUs

nvidia-smi nvlink -i <GPU IDs>
nvidia-smi nvlink --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If not used, the given command-line option applies to all of the supported GPUs.

3) Select a specific NvLink

nvidia-smi nvlink -l <GPU Nvlink Id>
nvidia-smi nvlink --list <GPU Nvlink Id>

Okay so real quick before the next batch: this selector picks a specific Nvlink on the GPU for whatever command youโ€™re running, as long as itโ€™s valid. If you donโ€™t use it, the command-line option applies to all of the GPUโ€™s Nvlinks. Slay.

nvidia-smi nvlink -s
nvidia-smi nvlink --status

Get the status of the GPUโ€™s Nvlinks.

If itโ€™s Active, the Bandwidth of the links will be displayed.

If the link is present but Not Active, it will show the link as Inactive.

If the link is in Sleep state, it will show as Sleep.

nvidia-smi nvlink -c
nvidia-smi nvlink --capabilities

Get the GPUโ€™s Nvlink capabilities.

nvidia-smi nvlink -p
nvidia-smi nvlink -pcibusid

Get the Nvlinkโ€™s remote node PCI bus ID.

nvidia-smi nvlink -R
nvidia-smi nvlink -remotelinkinfo

Get the remote device PCI bus ID and NvLink ID for a link.

No cap, this one is DEPRECATED.

Also DEPRECATED. We donโ€™t make the rules.

Yeah bestie, this one is DEPRECATED โ€” use -gt/--getthroughput instead.

Deprecated. Iconic behavior? Not really, but we move.

nvidia-smi nvlink -e
nvidia-smi nvlink --errorcounters

Get the Nvlink error counters.

For NVLink 4:

  • Replay Errors โ€” count the number of replay โ€˜eventsโ€™ that occurred
  • Recovery Errors โ€” count the number of link recovery events
  • CRC Errors โ€” count the number of CRC errors in received packets

For NVLink 5:

  • Tx packets โ€” Total Tx packets on the link
  • Tx bytes โ€” Total Tx bytes on the link
  • Rx packets โ€” Total Rx packets on the link
  • Rx bytes โ€” Total Rx bytes on the link
  • Malformed packet Errors โ€” Number of packets Rx on a link where packets are malformed
  • Buffer overrun Errors โ€” Number of packets that were discarded on Rx due to buffer overrun
  • Rx Errors โ€” Total number of packets with errors Rx on a link
  • Rx remote Errors โ€” Total number of packets Rx - stomp/EBP marker
  • Rx General Errors โ€” Total number of packets Rx with header mismatch
  • Local link integrity Errors โ€” Total number of times that the count of local errors exceeded a threshold
  • Tx discards โ€” Total number of tx error packets that were discarded
  • Link recovery successful events โ€” Number of times link went from Up to recovery, succeeded and link came back up
  • Link recovery failed events โ€” Number of times link went from Up to recovery, failed and link was declared down
  • Total link recovery events โ€” Number of times link went from Up to recovery, irrespective of the result
  • Effective Errors โ€” Sum of the number of errors in each Nvlink packet
  • Effective BER โ€” BER for symbol errors
  • Symbol Errors โ€” Number of errors in rx symbols
  • Symbol BER โ€” BER for symbol errors
  • FEC Errors - [0-15] โ€” count of symbol errors that are corrected
  • Raw Errors Lane 0 โ€” Number of raw errors for Lane 0
  • Raw Errors Lane 1 โ€” Number of raw errors for Lane 1
  • Raw BER Lane 0 โ€” Number of raw BER for Lane 0
  • Raw BER Lane 1 โ€” Number of raw BER for Lane 1
  • Raw BER Total โ€” Total number of raw BER
  • PLR Xmit Blocks โ€” Number of PLR Xmit Blocks
  • PLR Xmit Retry Blocks โ€” Number of PLR Xmit Retry Blocks
nvidia-smi nvlink -ec
nvidia-smi nvlink --crcerrorcounters

Get the Nvlink per-lane CRC/ECC error counters.

  • CRC โ€” NVLink 4 and before - Total Rx CRC errors on an NVLink Lane
  • ECC โ€” NVLink 4 - Total Rx ECC errors on an NVLink Lane
  • Deprecated โ€” NVLink 5 onwards
nvidia-smi nvlink -re
nvidia-smi nvlink --reseterrorcounters

Reset all Nvlink error counters to zero.

NvLink 5 NOT SUPPORTED ๐Ÿšจ
nvidia-smi nvlink -gt <Data Type>
nvidia-smi nvlink --getthroughput <Data Type>

<Data Type> can be one of the following:

  • d โ€” Tx and Rx data payload in KiB.
  • r โ€” Tx and Rx raw payload and protocol overhead in KiB.
nvidia-smi nvlink -sLowPwrThres <Threshold>
nvidia-smi nvlink --setLowPowerThreshold <Threshold>

Set the Nvlink Low Power Threshold, before the links go into Low Power Mode.

Threshold ranges and units can be found using -gLowPwrInfo.

nvidia-smi nvlink -gLowPwrInfo
nvidia-smi nvlink --getLowPowerInfo

Query the Nvlinkโ€™s Low Power Info.

nvidia-smi nvlink -sBwMode <Bandwidth Mode>
nvidia-smi nvlink --setBandwidthMode <Bandwidth Mode>

Set the Nvlink Bandwidth mode for all GPUs. This is DEPRECATED for Blackwell+.

The options are:

  • FULL โ€” All links are at max Bandwidth.
  • OFF โ€” Bandwidth is not used. P2P is via PCIe bus.
  • MIN โ€” Bandwidth is at minimum speed.
  • HALF โ€” Bandwidth is at around half of FULL speed.
  • 3QUARTER โ€” Bandwidth is at around 75% of FULL speed.
nvidia-smi nvlink -gBwMode
nvidia-smi nvlink --getBandwidthMode

Get the Nvlink Bandwidth mode for all GPUs. This is DEPRECATED for Blackwell+.

nvidia-smi nvlink -cBridge
nvidia-smi nvlink --checkBridge

Query for Nvlink Bridge presence.

nvidia-smi nvlink -sLWidth <Link Width>
nvidia-smi nvlink --setLinkWidth <Link Width>

Set the GPUโ€™s Nvlink width, which will keep those number of links Active, and the rest to sleep.

<Link Width> can be one of the following:

  • values โ€” List possible Link Widths to be set.
  • The numerical value from the above option.
nvidia-smi nvlink -gLWidth
nvidia-smi nvlink --getLinkWidth

Query the GPUโ€™s Nvlink Width.

nvidia-smi nvlink -info
nvidia-smi nvlink --info

Query the GPUโ€™s Nvlink device information.

nvidia-smi nvlink -dr
nvidia-smi nvlink --dataRate

Get the data rate of the GPUโ€™s Nvlinks, accounting for FEC overhead.

If Active, the Bandwidth of the links will be displayed.

If the link is present but Not Active, it will show the link as Inactive.

If the link is in Sleep state, it will show as Sleep.

๐Ÿฆ‹ C2C ๐Ÿฆ‹

The nvidia-smi c2c command-line is used to manage the GPUโ€™s C2C Links. It provides options to query C2C Link information.

Usage:

1) Display help menu ๐Ÿซถ

nvidia-smi c2c -h

Displays help menu for using the command-line.

2) List one or more GPUs ๐Ÿ’…

nvidia-smi c2c -i <GPU IDs>
nvidia-smi c2c --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If not used, the given command-line option applies to all of the supported GPUs.

nvidia-smi c2c -l <GPU C2C Id>
nvidia-smi c2c --list <GPU C2C Id>

Selects a specific C2C Link of the GPU for the given command, if valid. If not used, the given command-line option applies to all of the GPUโ€™s C2C Links.

nvidia-smi c2c -s
nvidia-smi c2c --status

Get the status of the GPUโ€™s C2C Links. If active, the Bandwidth of the links will be displayed.

nvidia-smi c2c -e
nvidia-smi c2c -errorCounters

Display the C2C Link error counters.

nvidia-smi c2c -gLowPwrInfo
nvidia-smi c2c -getLowPowerInfo

Display the C2C Link Power state.

๐Ÿฆ‹ vGPU Management ๐Ÿฆ‹

Okay so the nvidia-smi vgpu command is the one that reports on GRID vGPUs executing on supported GPUs and hypervisors โ€” and bestie, if you're wondering which platforms count as "supported," that's a driver release notes thing, not a here thing. ๐Ÿ’… Summary reporting gives you the basic tea about vGPUs currently executing on the system. The extra options give you detailed reporting of vGPU properties, per-vGPU reporting of SM, Memory, Encoder, Decoder, Jpeg, and OFA utilization, and per-GPU reporting of supported and creatable vGPUs. Periodic reports can be generated automatically too โ€” just give any command a configurable loop frequency. โœจ

Note: on MIG-enabled GPUs, querying the utilization of encoder, decoder, jpeg, ofa, gpu, and memory is not currently supported. ๐Ÿ˜ญ Not a skill issue, just not supported yet.

Usage:

  1. Help Information ๐Ÿ’–
nvidia-smi vgpu -h

Displays help information for using the command line.

  1. Default with no arguments
nvidia-smi vgpu

Reports a summary of all the vGPUs currently active on each device. The no-thoughts-just-vibes version.

  1. Display detailed info on currently active vGPUs
nvidia-smi vgpu -q

Collects and displays information on currently active vGPUs on each device โ€” driver version, utilization, and all the other good stuff. ๐ŸŽ€

  1. Select one or more devices
nvidia-smi vgpu -i <device1,device2, .. , deviceN>

Reports a summary for all the vGPUs currently active on the devices you picked with that comma-separated device list.

  1. Display supported vGPUs
nvidia-smi vgpu -s

Displays the vGPU types supported on each device. Add the -v / --verbose option if you want the detailed info on each vGPU type. ๐Ÿ‘‘

  1. Display creatable vGPUs
nvidia-smi vgpu -c

Displays the vGPU types creatable on each device. Heads up: this one varies dynamically depending on which vGPUs are already active on the device. Use -v / --verbose for detailed info on each vGPU type.

  1. Report utilization for currently active vGPUs
nvidia-smi vgpu -u

Reports the average utilization (SM, Memory, Encoder, Decoder, Jpeg, and OFA) for each active vGPU since the last monitoring cycle. Default cycle time is 1 second, and the command just runs until you hit Ctrl+C. If a device has no active vGPUs, its metrics are reported as -. ๐Ÿ’€

  1. Configure loop frequency
nvidia-smi vgpu [-s -c -q -u] -l <time in secs>

Collects and displays data at a specified loop interval until you kill it with Ctrl+C. The loop frequency has to be between 1 and 10 secs, no cap. If you don't specify a time, the loop frequency defaults to 5 secs.

  1. Display GPU engine usage
nvidia-smi vgpu -p

Display the GPU engine usage of currently active processes running in the vGPU VMs.

  1. Display migration capabilities
nvidia-smi vgpu -m

Display the pGPU's migration/suspend/resume capability.

  1. Display the vGPU Software scheduler state
nvidia-smi vgpu -ss

Display the information about the vGPU Software scheduler state. ๐Ÿงš

  1. Display the vGPU Software scheduler capabilities
nvidia-smi vgpu -sc

Display the list of supported vGPU scheduler policies โ€” it comes back along with the other capabilities values, if the engine is Graphics type. For other engine types, it's BEST EFFORT policy and the other capabilities will be zero. Also: if ARR is supported and enabled, scheduling frequency and averaging factor apply; otherwise timeSlice applies. Lowkey important, don't skip that part. โญ

  1. Display the vGPU Software scheduler logs
nvidia-smi vgpu -sl

Display the vGPU Software scheduler runlist logs.

nvidia-smi --query-vgpu-scheduler-logs=[input parameters]

Display the vGPU Software scheduler runlist logs in CSV format. ๐Ÿ“

  1. Set the vGPU Software scheduler state
nvidia-smi vgpu --set-vgpu-scheduler-state [options]

Set the vGPU Software scheduler policy and states.

  1. Display NVIDIA Encoder session info
nvidia-smi vgpu -es

Display the information about encoder sessions for currently running vGPUs.

  1. Display accounting statistics
nvidia-smi vgpu --query-accounted-apps=[input parameters]

Display accounting stats for compute/graphics processes.

Wanna know which properties you can actually query? Run nvidia-smi --help-query-accounted-apps and it'll list them for you. ๐Ÿ’œ

  1. Display NVIDIA Frame Buffer Capture session info
nvidia-smi vgpu -fs

Display the information about FBC sessions for currently running vGPUs.

Note: horizontal resolution, vertical resolution, average FPS and average latency data for an FBC session may be zero if there are no new frames captured since the session started. So if you see zeros, that's why โ€” don't panic. ๐Ÿ™ˆ
  1. Set vGPU heterogeneous mode
nvidia-smi vgpu -shm

Set vGPU heterogeneous mode of the device for timesliced vGPUs with different framebuffer sizes.

  1. Set vGPU MIG timeslice mode
nvidia-smi vgpu -smts

Set vGPU MIG timeslice mode of the device.

  1. Display the currently creatable vGPU types on the user provided GPU Instance
nvidia-smi vgpu -c -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -c --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance. Don't forget it, bestie. ๐Ÿซถ

  1. Display detailed information of the currently active vGPU instances on the user provided GPU Instance
nvidia-smi vgpu -q -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -q --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.

  1. Display the vGPU scheduler state on the user provided GPU Instance
nvidia-smi vgpu -ss -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -ss --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.

  1. Get the vGPU heterogeneous mode on the user provided GPU Instance
nvidia-smi vgpu -ghm -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -ghm --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance. If you don't use it, the given command-line option applies to all of the GPU instances. ๐ŸŒˆ

  1. Set the vGPU heterogeneous mode on the user provided GPU Instance
nvidia-smi vgpu -shm -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -shm --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.

  1. Set the vGPU Software scheduler state on the user provided GPU Instance
nvidia-smi vgpu set-vgpu-scheduler-state [options] -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu set-vgpu-scheduler-state [options] --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.

  1. Display the vGPU scheduler logs on the user provided GPU Instance
nvidia-smi vgpu -sl -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -sl --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.

nvidia-smi vgpu --query-gpu-instance-vgpu-scheduler-logs=[input parameters] -gi <GPU instance IDs> -i <GPU IDs>

Display the vGPU Software scheduler logs in CSV format on the user provided GPU Instance. ๐ŸŽ€

  1. Display detailed information of the currently creatable vGPU types on the user provided GPU Instance
nvidia-smi vgpu -c -v -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi vgpu -c -v --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Provide comma separated values for more than one GPU instance. The target GPU index is MANDATORY for the given GPU instance.


๐ŸŒธ MIG Management ๐ŸŒธ

The privileged nvidia-smi mig command-line is used to manage MIG-enabled GPUs. Yes, privileged โ€” main character energy only. ๐Ÿ‘‘ It gives you options to create, list and destroy GPU instances and compute instances.

Usage:

  1. Display help menu ๐Ÿ’–
nvidia-smi mig -h

Displays the help menu for using the command-line.

  1. Select one or more GPUs
nvidia-smi mig -i <GPU IDs>
nvidia-smi mig --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If you don't use it, the given command-line option applies to all of the supported GPUs.

  1. Select one or more GPU instances
nvidia-smi mig -gi <GPU instance IDs>
nvidia-smi mig --gpu-instance-id <GPU instance IDs>
  • -gi, --gpu-instance-id โ€” picks out one or more GPU instances by their comma-separated GPU instance IDs ๐Ÿ’–. Skip it and whatever command-line option you're using just applies to all of the GPU instances, easy peasy.

4) Select one or more compute instances

nvidia-smi mig -ci <compute instance IDs>
nvidia-smi mig --compute-instance-id <compute instance IDs>

Grabs one or more compute instances via the comma-separated compute instance IDs you hand it ๐ŸŽ€. Don't pass it? Then the command-line option you're using applies to all the compute instances. no cap.

5) List GPU instance profiles

nvidia-smi mig -lgip -i <GPU IDs>
nvidia-smi mig --list-gpu-instance-profiles --id <GPU IDs>

Drops a list of GPU instance profiles, plus their availability and IDs ๐Ÿ‘‘. These profiles describe the supported types of GPU instances โ€” including all the GPU resources they exclusively control. the way that's literally the whole point โœจ

6) List GPU instance possible placements

nvidia-smi mig -lgipp -i <GPU IDs>
nvidia-smi mig --list-gpu-instance-possible-placements --id <GPU IDs>

Shows you the GPU instance possible placements ๐ŸŒธ. Possible placements describe where the supported types of GPU instances sit within the GPU. it's giving map app for your slices ๐Ÿ—บ๏ธ

7) Create GPU instance

nvidia-smi mig -cgi <GPU instance specifiers> -i <GPU IDs>
nvidia-smi mig --create-gpu-instance <GPU instance specifiers> --id <GPU IDs>

Creates GPU instances for the given GPU instance specifiers ๐Ÿ’…. A GPU instance specifier is a GPU instance profile name or ID plus an optional placement specifier โ€” that's a colon and a placement start index. Heads up though: the command fails if the GPU resources needed to allocate the requested GPU instances aren't available, or if the placement index isn't valid for the given profile ๐Ÿ˜ญ. vibe check your specifiers first fr fr.

8) Create a GPU instance along with the default compute instance

nvidia-smi mig -cgi <GPU instance profile IDs or names> -i <GPU IDs> -C
nvidia-smi mig --create-gpu-instance <GPU instance profile IDs or names> --id <GPU IDs> --default-compute-instance

9) List GPU instances

nvidia-smi mig -lgi -i <GPU IDs>
nvidia-smi mig --list-gpu-instances --id <GPU IDs>

Lists your GPU instances and their IDs ๐Ÿฆ‹. that's it, that's the whole thing.

10) Destroy GPU instance

nvidia-smi mig -dgi -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --destroy-gpu-instances --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Destroys GPU instances ๐Ÿ’€. And yeah โ€” the command fails if the GPU instance you're trying to nuke is currently in use by an application. rude, but fair ๐Ÿ™ˆ.

11) List compute instance profiles

nvidia-smi mig -lcip -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --list-compute-instance-profiles --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Lists compute instance profiles with their availability and IDs ๐ŸŽ€. Profiles describe the supported types of compute instances, including all the GPU resources they share or exclusively control โ€” yes, both ๐Ÿ’œ.

12) List compute instance possible placements

nvidia-smi mig -lcipp -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --list-compute-instance-possible-placements --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Lists compute instance possible placements โœจ. Possible placements describe the locations of the supported types of compute instances within the GPU instance. nesting dolls but make it silicon ๐Ÿช†

13) Create compute instance

nvidia-smi mig -cci <compute instance profile IDs or names> -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --create-compute-instance <compute instance profile IDs or names> --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Creates compute instances for the given compute instance specifiers ๐Ÿ”ฅ (the page spells it "spcifiers" โ€” we love a typo era, keeping the facts intact tho). A compute instance specifier = a compute instance profile name or ID plus an optional placement specifier, which is a colon and a placement start index. The command fails if the GPU resources required to allocate the requested compute instances aren't available, or if the placement index isn't valid for the given profile ๐Ÿ˜ญ.

14) List compute instances

nvidia-smi mig -lci -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --list-compute-instances --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Lists compute instances and their IDs ๐ŸŒˆ. short and slay.

15) Destroy compute instance

nvidia-smi mig -dci -ci <compute instance IDs> -gi <GPU instance IDs> -i <GPU IDs>
nvidia-smi mig --destroy-compute-instance --compute-instance-id <compute instance IDs> --gpu-instance-id <GPU instance IDs> --id <GPU IDs>

Destroys compute instances ๐Ÿ’€. Same deal as before โ€” it fails if the compute instance you're targeting is in use by an application. no cap, check first.


๐ŸŽš๏ธ Boost Slider

The privileged nvidia-smi boost-slider command-line is here to manage the boost slider on GPUs ๐ŸŽ€. It's got options to list the boost sliders and control them.

Usage, bestie:

1) Display help menu

nvidia-smi boost-slider -h

Displays the help menu for using the command-line ๐Ÿซถ. always start here, iykyk.

2) List one or more GPUs

nvidia-smi boost-slider -i <GPU IDs>
nvidia-smi boost-slider --id <GPU IDs>

Selects one or more GPUs using the comma-separated GPU indexes, PCI bus IDs or UUIDs you give it ๐ŸŒธ. If you don't use it, the given command-line option applies to all of the supported GPUs.

3) List boost sliders

nvidia-smi boost-slider -l
nvidia-smi boost-slider --list

Lists all boost sliders for the selected devices ๐Ÿ‘‘.

4) Set video boost slider

nvidia-smi boost-slider --vboost <value>

Sets the video boost slider for the selected devices ๐Ÿ’…. go off.


๐Ÿ”Œ Power Hint

The privileged nvidia-smi power-hint command-line is used to query the power hint on GPUs โšก.

Usage:

1) Display help menu

nvidia-smi boost-slider -h

Displays the help menu for using the command-line โœจ. (yep, the page literally shows boost-slider here โ€” copying it exactly, char for char, don't come for me ๐Ÿ™ˆ)

2) List one or more GPUs

nvidia-smi boost-slider -i <GPU IDs>
nvidia-smi boost-slider --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs ๐Ÿฆ‹. Not used? Then the given command-line option applies to all of the supported GPUs.

3) List power hint info

nvidia-smi boost-slider -l
nvidia-smi boost-slider --list-info

Lists all boost sliders for the selected devices ๐Ÿ’œ. (that's what the page says, verbatim vibes)

4) Query power hint

nvidia-smi boost-slider -gc <value> -t <value> -p <profile ID>
nvidia-smi boost-slider --graphics-clock <value> --temperature <value> --profile <profile ID>

Queries the power hint with graphics clock, temperature and profile id ๐Ÿ”ฅ.

5) Query power hint

nvidia-smi boost-slider -gc <value> -mc <value> -t <value> -p <profile ID>
nvidia-smi boost-slider --graphics-clock <value> --memory-clock <value> --temperature <value> --profile <profile ID>

Queries the power hint with graphics clock, memory clock, temperature and profile id ๐Ÿ˜ค. more clocks, more power, more hint.


๐Ÿ”’ Confidential Compute

The nvidia-smi conf-compute command-line is your go-to for managing confidential compute ๐Ÿ›ก๏ธ. It's got options to set and query confidential compute. main character energy.

Usage:

1) Display help menu

nvidia-smi conf-compute -h

Displays the help menu for using the command-line ๐ŸŽ€.

2) List one or more GPUs

nvidia-smi conf-compute -i <GPU IDs>
nvidia-smi conf-compute --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs ๐ŸŒธ. Skip it and the given command-line option applies to all of the supported GPUs.

3) Query confidential compute CPU capability

nvidia-smi conf-compute -gc
nvidia-smi conf-compute --get-cpu-caps

Gets the confidential compute CPU capability โœจ.

4) Query confidential compute GPUs capability

nvidia-smi conf-compute -gg
nvidia-smi conf-compute --get-gpus-caps

Gets the confidential compute GPUs capability ๐Ÿ‘‘.

5) Query confidential compute devtools mode

nvidia-smi conf-compute -d
nvidia-smi conf-compute --get-devtools-mode

Gets the confidential compute DevTools mode ๐Ÿงš.

6) Query confidential compute environment

nvidia-smi conf-compute -e
nvidia-smi conf-compute --get-environment

Gets the confidential compute environment ๐ŸŒˆ.

7) Query confidential compute feature status

nvidia-smi conf-compute -f
nvidia-smi conf-compute --get-cc-feature

Gets the confidential compute CC feature status โญ.

8) Query confidential compute GPU protected/unprotected memory sizes

nvidia-smi conf-compute -gm
nvidia-smi conf-compute --get-mem-size-info

Gets the confidential compute GPU protected/unprotected memory sizes ๐Ÿ’œ.

9) Set confidential compute GPU unprotected memory size

nvidia-smi conf-compute -sm <value>
nvidia-smi conf-compute --set-unprotected-mem-size <value>

Sets the confidential compute GPU unprotected memory size ๐Ÿ˜ค. you're in control now.

...it sets the confidential compute GPU unprotected memory size, in KiB. Requires root, obviously. ๐Ÿ‘‘

10) Set confidential compute GPUs ready state

nvidia-smi conf-compute -srs <value>
nvidia-smi conf-compute --set-gpus-ready-state <value>

Sets the confidential compute GPUs ready state, bestie. The value has to be 1 to set the ready state and 0 to unset it. Requires root. โœจ

11) Query confidential compute GPUs ready state

nvidia-smi conf-compute -grs
nvidia-smi conf-compute --get-gpus-ready-state

Gets the confidential compute GPUs ready state. That's it, that's the whole vibe. ๐Ÿ’…

12) Set Confidential Compute Key Rotation Max Attacker Advantage

nvidia-smi conf-compute -skr <value>
nvidia-smi conf-compute --set-key-rotation-max-attacker-advantage

Sets the Confidential Compute Key Rotation Max Attacker Advantage. Yes the flag name is a whole paragraph, no we're not okay, yes it works. ๐Ÿ˜ญ

13) Display Confidential Compute Key Rotation Threshold Info

nvidia-smi conf-compute -gkr
nvidia-smi conf-compute --get-key-rotation-threshold-info

Displays the Confidential Compute Key Rotation Threshold Info. ๐ŸŽ€

14) Display Confidential Compute Multi-GPU Mode

nvidia-smi conf-compute -mgm
nvidia-smi conf-compute --get-multigpu-mode

Displays the Confidential Compute Multi-GPU Mode. Iconic. โœจ

15) Display Confidential Compute Detailed Info

nvidia-smi conf-compute -q
nvidia-smi conf-compute --query-conf-compute

Displays Confidential Compute Detailed Info โ€” the full lore drop. ๐Ÿ”ฅ


๐Ÿฆ‹ GPU Performance Monitoring(GPM) Stream State ๐Ÿฆ‹

The nvidia-smi gpm command-line manages the GPU performance monitoring unit. It's got options to query and set the stream state, and honestly? Very demure, very mindful.

Usage:

1) Display help menu

nvidia-smi gpm -h

Displays the help menu for using the command-line. When in doubt, -h it out. ๐Ÿ’–

2) List one or more GPUs

nvidia-smi gpm -i <GPU IDs>
nvidia-smi gpm --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If you don't use it, the given command-line option applies to all of the supported GPUs. Slay, blanket coverage. ๐Ÿซถ

3) Query GPU performance monitoring stream state

nvidia-smi gpm -g
nvidia-smi gpm --get-stream-state

Gets the gpm stream state for the selected devices.

4) Set GPU performance monitoring stream state

nvidia-smi gpm -s <value>
nvidia-smi gpm --set-stream-state <value>

Sets the gpm stream state for the selected devices.


๐ŸŒธ GPU PCI section ๐ŸŒธ

The nvidia-smi pci command-line manages GPU PCI counters. It's got options to query and clear PCI counters. Little counters, big responsibility. ๐ŸŽ€

Usage:

1) Display help menu

nvidia-smi pci -h

Displays the help menu for using the command-line.

2) Query PCI error counters

nvidia-smi pci -i <GPU index> -gErrCnt

Queries the PCI error counters of a GPU. ๐Ÿ‘€

3) Clear PCI error counters

nvidia-smi pci -i <GPU index> -cErrCnt

Clears the PCI error counters of a GPU. Fresh start energy. โœจ

4) Query PCI counters

nvidia-smi pci -i <GPU index> -gCnt

Queries the PCI RX and TX counters of a GPU.


๐Ÿ”ฅ Power Smoothing ๐Ÿ”ฅ

The nvidia-smi power-smoothing command-line manages Power Smoothing related data on the GPU. It's got options to set Power Smoothing related data and to query the preset profile definitions. Smooth like butter, fr fr. ๐Ÿงˆ

Usage:

1) Display help menu

nvidia-smi power-smoothing -h

Displays the help menu for using the command-line.

2) List one or more GPUs

nvidia-smi power-smoothing -i <GPU IDs>
nvidia-smi power-smoothing --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If not used, the given command-line option applies to all of the supported GPUs.

2) List one Preset Profile ID

nvidia-smi power-smoothing -p <Profile ID>
nvidia-smi power-smoothing --profile <Profile ID>

Selects a Preset Profile ID for which to update a value. This is required when updating a Preset Profile parameter, and prohibited in all other cases. Pick a lane, bestie. ๐Ÿšซ

2) Set Active Preset Profile ID

nvidia-smi power-smoothing -spp <Profile ID>
nvidia-smi power-smoothing --set-preset-profile <Profile ID>

Activates the desired Preset Profile ID. Requires root. ๐Ÿ‘‘

2) Update percentage Total Module Power (TMP) floor

nvidia-smi power-smoothing -ptf <Percentage> -p <Profile ID>
nvidia-smi power-smoothing --percent-tmp-floor <Percentage> --profile <Profile ID>

Sets the percentage TMP floor to the inputted value for a given Preset Profile ID. The desired percentage should be from 0 - 100, given in the form of "AB.CD", with a maximum of two decimal places of precision. So like, to set the value to 34.56%, you'd input 34.56. Input can also contain zero or one decimal places of precision. This option requires a profile ID as an argument. Requires root. Math girlies rise. ๐Ÿ“

2) Update Ramp-Up Rate

nvidia-smi power-smoothing -rur <value> -p <Profile ID>
nvidia-smi power-smoothing --ramp-up-rate <value> --profile <Profile ID>

Sets the Ramp-Up Rate to the desired value for a given Preset Profile ID. The rate given must be in the units of mW/s. This option requires a profile ID as an argument. Requires root. โฌ†๏ธ

2) Update Ramp-Down Rate

nvidia-smi power-smoothing -rdr <value> -p <Profile ID>
nvidia-smi power-smoothing --ramp-down-rate <value> --profile <Profile ID>

Sets the Ramp-Down Rate to the desired value for a given Preset Profile ID. The rate given must be in the units of mW/s. This option requires a profile ID as an argument. Requires root. โฌ‡๏ธ

2) Update Ramp-Down Hysteresis

nvidia-smi power-smoothing -rdh <value> -p <Profile ID>
nvidia-smi power-smoothing --ramp-down-hysteresis <value> --profile <Profile ID>

Sets the Ramp-Down Hysteresis to the desired value for a given Preset Profile ID. The rate given must be in the units of ms. This option requires a profile ID as an argument. Requires root. โฑ๏ธ

2) Displays the Preset Profile definitions for all Profile IDs

nvidia-smi power-smoothing -ppd
nvidia-smi power-smoothing --print-profile-definitions

Displays all values for each Preset Profile ID. The whole mood board. ๐ŸŽจ

2) Set Feature State

nvidia-smi power-smoothing -s <state>
nvidia-smi power-smoothing --state <state>

Sets the state of the feature to either 0/DISABLED or 1/ENABLED. Requires root. It's giving on/off, that's it. ๐Ÿ’…


๐ŸŒˆ Power Profiles ๐ŸŒˆ

The nvidia-smi power-profiles command-line manages Workload Power Profiles related data on the GPU. It's got options to update Power Profiles data and to query the supported Power Profiles.

Usage:

1) Display help menu

nvidia-smi power-profiles -h

Displays the help menu for using the command-line.

2) List one or more GPUs

nvidia-smi power-profiles -i <GPU IDs>
nvidia-smi power-profiles --id <GPU IDs>

Selects one or more GPUs using the given comma-separated GPU indexes, PCI bus IDs or UUIDs. If not used, the given command-line option applies to all of the supported GPUs.

3) List Power Profiles

nvidia-smi power-profiles -l
nvidia-smi power-profiles --list

Lists all Workload Power Profiles supported by the device. โœจ

4) List Detailed Power Profiles info

nvidia-smi power-profiles -ld
nvidia-smi power-profiles --list-detailed

Lists all Workload Power Profiles supported by the device along with their metadata. That includes the Profile ID, the Priority (where a lower number indicates a higher priority), and Profiles that conflict with the given profile. Heads up though: if two or more conflicting profiles are requested, not all may be enforced. โš ๏ธ

Not all of them may be enforced โ€” the doc says "not all my be enforced", which is a typo, but the meaning is very much: conflicts mean somebody's not getting what they asked for. ๐Ÿ™ˆ

5) Get Requested Profiles

nvidia-smi power-profiles -gr
nvidia-smi power-profiles --get-requested

Gets a list of all currently requested Power Profiles. Note that if any of the profiles conflict, then not all may be enforced. Same warning, same vibe. ๐Ÿ˜ญ

6) Set Requested Profiles

nvidia-smi power-profiles -sr <Profile ID>
nvidia-smi power-profiles --set-requested <Profile ID(s)>

Adds the input profile(s) to the list of requested Power Profiles. The input is a comma separated list of profile IDs with no spaces. Requires root/admin permissions or access to the NVIDIA WPPS capability. ๐Ÿซก

7) Clear Requested Profiles

nvidia-smi power-profiles -cr <Profile ID>
nvidia-smi power-profiles --clear-requested <Profile ID(s)>

Removes the input profile(s) to the list of requested Power Profiles. The input is a comma separated list of profile IDs with no spaces. Requires root/admin permissions or access to the NVIDIA WPPS capability. Bye bye profile. ๐Ÿ‘‹

8) Get Enforced Profiles

and if youโ€™re trying to see which Power Profiles are actually being enforced rn, the page gives you these two commands โ€” it also shows a lil floating > after each, bestie, so donโ€™t freak when you see it:

nvidia-smi power-profiles -ge
nvidia-smi power-profiles --get-enforced

Both of those get you a list of all currently enforced Power Profiles. โš ๏ธ Note that this list may differ from the requested Profiles list if multiple conflicting profiles are selected.


๐Ÿซง GPU RUSD section

The nvidia-smi rusd command-line is your little control room for GPU RUSD settings. It gives you options to set RUSD settings. RUSD is a Read only User Shared Data buffer that keeps GPU metrics. ๐Ÿ’…

Usage

  1. Display help menu โ€” run nvidia-smi rusd -h.

Displays help menu for using the command-line.

Example:

nvidia-smi rusd -h

    rusd -- RUSD settings section

    Usage: nvidia-smi rusd [options]

    Options include:
    [-h | --help]: Display help information
    [-i | --id]: Enumeration index, PCI bus ID or UUID.

    [-spm | --set-polling-mask]: Set polling mask for the given comma-separated list of metric groups
        Groups are "none", "clock", "performance", "memory", "power", "thermal", "pci", "fan", "proc_util", "all"
  1. Set RUSD poll mask โ€” nvidia-smi rusd -i <GPU index> -spm <mask_value>.

Set RUSD poll mask.

Example:

nvidia-smi rusd -spm all
nvidia-smi rusd -spm clock,performance
nvidia-smi rusd -spm none

๐Ÿ”ฅ GPU PRM section

The nvidia-smi prm command-line is for reading GPU PRM registers and counters. Heads up: this option is only available on GPUs based on NVIDIA Blackwell or newer architectures. ๐Ÿ‘‘

Usage

  1. Display help menu โ€” nvidia-smi prm -h.

Displays the help menu for using the command-line.

Example:

nvidia-smi prm -h
    [-h | --help]: Display help information
    [-i | --index]: GPU index; mandatory if "-n, --name" is selected
    [-l | --list]: List all supported PRM registers and counters
    [-n | --name]: PRM Register name; mandatory if any of "-f" or "-p" are selected
    [-f | --info]: List all supported PRM parameters for the given register or counter
    [-p | --params]: PRM input parameters, if any; parameters are a comma-separated list of <key>=<value> pairs
  1. List supported PRM registers โ€” nvidia-smi prm --list.

Displays the list of supported GPU PRM registers and counters.

Example:

nvidia-smi prm --list
Supported PRM registers:
            GHPKT
            MCAM
            MGIR
            MLPC
            MORD
            MPSCR
            MTCAP
            MTECR
            MTEIM
            MTEWE
            MTIE
            MTIM
            MTRC_CAP
            MTRC_CONF
            MTRC_CTRL
            MTSR
            PAOS
            PDDR
            PGUID
            PLIB
            PLTC
            PMAOS
            PMLP
            PMTU
            PPAOS
            PPCNT
            PPHCR
            PPLM
            PPLR
            PPRM
            PPRT
            PPSLC
            PPSLS
            PPTT
            PTYS
            SLRG
            SLTP
Supported PRM counters:
                        CLI name                                                      Description
                link_down_events                 PPCNT.(physical_layer_counters).link_down_events
                   oper_recovery                                               PPRM.oper_recovery
                plr_rcv_code_err                      PPCNT.(plr_counters_group).plr_rcv_code_err
                   plr_rcv_codes                         PPCNT.(plr_counters_group).plr_rcv_codes
      plr_rcv_uncorrectable_code            PPCNT.(plr_counters_group).plr_rcv_uncorrectable_code
                 plr_retry_codes                       PPCNT.(plr_counters_group).plr_retry_codes
                 plr_sync_events                       PPCNT.(plr_counters_group).plr_sync_events
                  plr_xmit_codes                        PPCNT.(plr_counters_group).plr_xmit_codes
           plr_xmit_retry_events                 PPCNT.(plr_counters_group).plr_xmit_retry_events
                  port_xmit_wait              PPCNT.(portcounters_attribute_group).port_xmit_wait
      successful_recovery_events       PPCNT.(physical_layer_counters).successful_recovery_events
  time_between_last_2_recoveries         PPCNT.(recovery_counters).time_between_last_2_recoveries
        time_since_last_recovery               PPCNT.(recovery_counters).time_since_last_recovery
total_successful_recovery_events       PPCNT.(recovery_counters).total_successful_recovery_events
  1. List supported input parameters for a given PRM register or counter โ€” nvidia-smi prm -n <register> -f or nvidia-smi prm -c <counter> -f.

Lists the supported input parameters (if any) for the given PRM register or counter.

Example:

nvidia-smi prm -n PPCNT -f
Supported PRM parameters for register PPCNT:
        grp
        port_type
        lp_msb
        pnat
        local_port
        swid
        prio_tc
        grp_profile
        plane_ind
        counters_cap
        lp_gl
        clr

Note that some registers do not take any input parameters; in this case the output of the above command will be '[NONE]'.

Example:

nvidia-smi prm -n MGIR -f
Supported PRM parameters for register MGIR:
        [NONE]
  1. Read GPU PRM register โ€” nvidia-smi prm -i <GPU-index> -n <register> -p <Comma-separated list of key EQUALS value pairs>.

Reads the specified GPU PRM register with the given input parameters and outputs to the screen. Note that the output may not include all information in the register.

Example:

nvidia-smi prm -i 0 -n PPCNT -p=local_port=1,pnat=1,grp=35
PPCNT:
        grp = 35, port_type = 0, lp_msb = 0, pnat = 1, local_port = 1, swid = 0
        prio_tc = 0, grp_profile = 0, plane_ind = 0, counters_cap = 0, lp_gl = 0, clr = 0
  1. Read GPU PRM counter โ€” nvidia-smi prm -i <GPU-index> -c <counter> -p <Comma-separated list of key EQUALS value pairs>.

Reads the specified GPU PRM counter with the given input parameters and outputs to the screen.

Example:

nvidia-smi prm -i 0 -c plr_rcv_codes -p "local_port=1"
plr_rcv_codes ==> 0x64aace03ff

๐Ÿง  System on Chip section

The nvidia-smi soc command-line is used to manage system on chip (SoC) metrics. It provides options to query SoC metrics. This SoC section is only available on Tegra Linux system. ๐Ÿง 

Usage

  1. Display help menu โ€” nvidia-smi soc -h.

Displays help menu for using the command-line.

Example:

nvidia-smi soc -h
    soc -- System on Chip section

    Usage: nvidia-smi soc [options]

    Options include:
    [-h | --help]: Display help information
    [-q | --query]: Query SoC metrics
  1. Query Soc Metrics โ€” nvidia-smi soc -q.

Query SoC metrics.

Example:

nvidia-smi soc -q

Memory:
    MemTotal: 128.83 GiB
    MemFree: 89.43 GiB
CPU:
    cpu0:
        clock: 972MHz
        utilization: 0%
    cpu1:
        clock: 972MHz
        utilization: 0%
    cpu2:
        clock: 972MHz
        utilization: 0%
    cpu3:
        clock: 972MHz
        utilization: 0%
    cpu4:
        clock: 972MHz
        utilization: 0%
    cpu5:
        clock: 972MHz
        utilization: 0%
    cpu6:
        clock: 972MHz
        utilization: 0%
    cpu7:
        clock: 972MHz
        utilization: 0%
    cpu8:
        clock: 1350MHz
        utilization: 0%
    cpu9:
        clock: 1674MHz
        utilization: 0%
    cpu10:
        clock: 972MHz
        utilization: 0%
    cpu11:
        clock: 972MHz
        utilization: 0%
    cpu12:
        clock: 972MHz
        utilization: 0%
    cpu13:
        clock: 972MHz
        utilization: 0%
Memory Controller:
    utilization: 0%
    clock: 4266MHz
Video Image Compositor:
    state: off
Programmable Vision Accelerator:
    state: off
Audio Processing Engine:
    Clock: 300 MHz
Thermal info:
    cpu-thermal: 59.22C
    tj-thermal: 60.41C
    soc012-thermal: 58.47C
    soc345-thermal: 60.41C
Power info:
    VDD_GPU: 5145 mW
    VDD_CPU_SOC_MSS: 5937 mW
    VIN_SYS_5V0: 4939 mW

๐ŸŽ€ Memory Limits section

The nvidia-smi memory-limits command-line is used to get and set the memory limits of a specified cgroup. This Memory Limit section is only available on Linux systems. ๐Ÿง

Usage

  1. Display help information โ€” nvidia-smi memory-limits -h.

Displays the help menu for using the command-line.

  1. Get memory limits โ€” nvidia-smi memory-limits -g -n <cgroup path>.

Get the memory limits for the given cgroup. Requires --namespace.

  1. Namespace โ€” nvidia-smi memory-limits -n <cgroup path> ....

Full path to the cgroup file (e.g. /sys/fs/cgroup/mycgroup).

  1. Set Soft limits โ€” nvidia-smi memory-limits -n <cgroup path> --soft-limit <limit value>.

Set the soft limit in Mebibytes. The possible values are an integer value, 'max', or 'default'. This can be used in conjunction with --hard-limit and if omitted when setting, the current value is kept. Requires --namespace.

  1. Set Hard limits โ€” nvidia-smi memory-limits -n <cgroup path> --hard-limit <limit value>.

Set the hard limit in Mebibytes. The possible values are an integer value, 'max', or 'default'. This can be used in conjunction with --soft-limit and if omitted when setting, the current value is kept. Requires --namespace.

okay bestie, buckle up โ€” this next chunk is all about Units (the S-class product kinda units, not your average GPU), plus the notes, examples, and the full change log. no skipping, i promise ๐Ÿซถ


โœจ UNIT ATTRIBUTES โœจ

So here's the whole vibe: this list describes every possible piece of data that the -q -u unit query option can hand back to you. And unless the entry says otherwise, all the numerical results are base 10 and unitless. periodt. ๐Ÿ’…

Timestamp ๐Ÿ•

The current system timestamp from the exact moment nvidia-smi was invoked. Format is "Day-of-week Month Day HH:MM:SS Year".

Driver Version ๐Ÿš—

The version of the installed NVIDIA display driver. Format is "Major-Number.Minor-Number".

HIC Info ๐Ÿ”Œ

Info about any Host Interface Cards (HIC) chillin' in the system.

  • Firmware Version โ€” the version of the firmware running on the HIC.

Attached Units ๐Ÿงฒ

The number of attached Units in the system.

Product Name ๐Ÿท๏ธ

The official product name of the unit. This is an alphanumeric value. For all S-class products.

Product Id ๐Ÿ”ข

The product identifier for the unit. This is an alphanumeric value of the form "part1-part2-part3". For all S-class products.

Product Serial ๐Ÿ”

The immutable globally unique identifier for the unit. This is an alphanumeric value. For all S-class products.

Firmware Version ๐Ÿ’พ

The version of the firmware running on the unit. Format is "Major-Number.Minor-Number". For all S-class products.

LED State ๐Ÿšจ

The LED indicator is literally there to flag systems with potential problems. An LED color of AMBER means there's an issue. For all S-class products.

  • Color โ€” the color of the LED indicator. Either "GREEN" or "AMBER".
  • Cause โ€” the reason for the current LED color. The cause may be listed as any combination of "Unknown", "Set to AMBER by host system", "Thermal sensor failure", "Fan failure" and "Temperature exceeds critical limit".

Temperature ๐ŸŒก๏ธ

Temperature readings for the important components of the Unit. All readings are in degrees C. Not all readings may be available. For all S-class products.

  • Intake โ€” air temperature at the unit intake.
  • Exhaust โ€” air temperature at the unit exhaust point.
  • Board โ€” air temperature across the unit board.

PSU โšก

Readings for the unit power supply. For all S-class products.

  • State โ€” operating state of the PSU. The power supply state can be any of the following: "Normal", "Abnormal", "High voltage", "Fan failure", "Heatsink temperature", "Current limit", "Voltage below UV alarm threshold", "Low-voltage", "I2C remote off command", "MOD_DISABLE input" or "Short pin transition".
  • Voltage โ€” PSU voltage setting, in volts.
  • Current โ€” PSU current draw, in amps.

Fan Info ๐ŸŒฌ๏ธ

Fan readings for the unit. A reading is provided for each fan, of which there can be many. For all S-class products.

  • State โ€” the state of the fan, either "NORMAL" or "FAILED".
  • Speed โ€” for a healthy fan, the fan's speed in RPM.

Attached GPUs ๐Ÿ–ฅ๏ธ

A list of PCI bus ids that correspond to each of the GPUs attached to the unit. The bus ids have the form "domain:bus:device.function", in hex. For all S-class products.


๐Ÿ“ NOTES

On Linux, NVIDIA device files may be modified by nvidia-smi if run as root. Please see the relevant section of the driver README file. ๐Ÿ‘€

The -a and -g arguments are now deprecated in favor of -q and -i, respectively. However, the old arguments still work for this release. (so likeโ€ฆ they're giving legacy era, but they do still show up to the group chat ๐Ÿซถ)


๐ŸŒŸ EXAMPLES

nvidia-smi -q

Query attributes for all GPUs once, and display in plain text to stdout.

nvidia-smi --format=csv,noheader --query-gpu=uuid,persistence_mode

Query UUID and persistence mode of all GPUs in the system.

nvidia-smi -q -d ECC,POWER -i 0 -l 10 -f out.log

Query ECC errors and power consumption for GPU 0 at a frequency of 10 seconds, indefinitely, and record to the file out.log.

nvidia-smi -c 1 -i GPU-b2f5f1b745e3d23d-65a3a26d-097db358-7303e0b6-149642ff3d219f8587cde3a8

nvidia-smi -c 1 -i GPU-b2f5f1b745e3d23d-65a3a26d-097db358-7303e0b6-149642ff3d219f8587cde3a8

Set the compute mode to "PROHIBITED" for GPU with UUID "GPU-b2f5f1b745e3d23d-65a3a26d-097db358-7303e0b6-149642ff3d219f8587cde3a8".

nvidia-smi -q -u -x --dtd

Query attributes for all Units once, and display in XML format with embedded DTD to stdout.

nvidia-smi --dtd -u -f nvsmi_unit.dtd

Write the Unit DTD to nvsmi_unit.dtd.

nvidia-smi -q -d SUPPORTED_CLOCKS

Display supported clocks of all GPUs.

nvidia-smi -i 0 --applications-clocks 2500,745

Set applications clocks to 2500 MHz memory, and 745 MHz graphics.

nvidia-smi mig -cgi 19

Create a MIG GPU instance on profile ID 19.

nvidia-smi mig -cgi 19:2

Create a MIG GPU instance on profile ID 19 at placement start index 2.

nvidia-smi boost-slider -l

List all boost sliders for all GPUs.

nvidia-smi boost-slider --vboost 1

Set vboost to value 1 for all GPUs.

nvidia-smi power-hint -l

List clock range, temperature range and supported profiles of power hint.

nvidia-smi boost-slider -gc 1350 -t 60 -p 0

Query power hint with graphics clock at 1350MHz, temperature at 60C and profile ID at 0.

nvidia-smi boost-slider -gc 1350 -mc 1215 -t n5 -p 1

Query power hint with graphics clock at 1350MHz, memory clock at 1216MHz, temperature at -5C and profile ID at 1.


๐Ÿšซ DEPRECATON AND REMOVAL NOTICES ๐Ÿšซ

Features deprecated and/or removed between nvidia-smi v580 Update and v575

  • Removed deprecated graphics voltage value from Voltage section of 'nvidia-smi -q'
  • Removed deprecated GPU Reset Status from 'nvidia-smi -q' output
  • Deprecated GPU Fabric State and Status from 'nvidia-smi -q'

๐Ÿ““ CHANGE LOG ๐Ÿ““

Known Issues ๐Ÿ’€

  • On systems where GPUs are NUMA nodes, the accuracy of FB memory utilization provided by nvidia-smi depends on the memory accounting of the operating system. This is because FB memory is managed by the operating system instead of the NVIDIA GPU driver. Typically, pages allocated from FB memory are not released even after the process terminates to enhance performance. In scenarios where the operating system is under memory pressure, it may resort to utilizing FB memory. Such actions can result in discrepancies in the accuracy of memory reporting.
  • On Linux GPU Reset can't be triggered when there is pending GOM change.
  • On Linux GPU Reset may not successfully change pending ECC mode. A full reboot may be required to enable the mode change.
  • On Linux platforms that configure NVIDIA GPUs as NUMA nodes, enabling persistence mode or resetting GPUs may print 'Warning: persistence mode is disabled on device' if nvidia-persistenced is not running, or if nvidia-persistenced cannot access files in the NVIDIA driver's procfs directory for the device (/proc/driver/nvidia/gpus/<PCI Config Address>/). During GPU reset and driver reload, this directory will be deleted and recreated, and outstanding references to the deleted directory, such as mounts or shells, can prevent processes from accessing files in the new directory.
  • There might be a slight discrepency between volatile/aggregate ECC counters if recovery action was not taken
  • The GPU hostname commands are currently only supported on compatible GB200 platforms.
  • On Windows, "nvidia-smi topo -p2p" reports the theoretical peer-to-peer capabilities recognized by the GPU driver and does not account for limitations from the specified devices or platform configuration.
  • On NVLink single-node systems, the Cluster UUID displayed in the Fabric section of 'nvidia-smi -q' may be reported as all zeros. This will be fixed in a future release.

Changes between nvidia-smi v615 Update and v610 ๐Ÿ†•

  • Added Bus Reset and System Reboot values to GPU Recovery Action reporting.
  • Added a new 'Cliques' subsection under the Fabric section in 'nvidia-smi -q' output, displaying per-type clique assignments (Unicast Pointer, Multicast Pointer, Unicast LE, Multicast LE).
  • The legacy 'CliqueId' field in the Fabric section is now marked as 'Deprecated'.
  • Added new '--query-gpu' fields: fabric.cliques.count and fabric.cliques.entries.
  • Added 'GPU Current Max Temp' reporting to the temperature section in the 'nvidia-smi -q' output.
  • Added 2 new Clock Event Reason flags: 'Board Limit' and 'Reliability Violation'.
  • Added a warning when disabling persistence mode while GPU init-on-probe is enabled. With init-on-probe, de-initialization only occurs on driver unbind or module unload, so the GPU remains initialized even if persistence mode is disabled.
  • Added new NVML_NVLINK_STATE_ACTIVE_TRAFFIC_DISABLED state
  • Added new -f option in nvidia-smi nvlink to force synchronous Reduce Bandwidth Mode when used with '-\sLWidth'
    • Asynchronous setting will be on by default, and fallback to synchronous for unsupported devices.
  • Modified -gLWidth with more information to display:
    • Target Link width
    • Fabric State
    • Fabric Status
    • Total Links
    • Active Links
    • Unused Links
  • Added support for new Workload Power Profile names.
  • - Added a new 'memory-limits' option to allow setting and getting memory limits for a cgroup
  • Updated 'nvidia-smi event-log' output to display event groups with readable event category and context type names, GPU-prefixed UUIDs, and numeric module event codes.
  • Adaptive TGP mode:
  • - Added set and query commands 'nvidia-smi --set-adaptive-tgp-mode=0|1' and 'nvidia-smi --get-adaptive-tgp-mode-info'.
  • - Added Adaptive TGP requested mode, current mode, and adjusted base power under 'nvidia-smi -q'.
  • Added new Global Fabric Manager State field to Fabric Health output
  • TCC is not supported on Windows-on-ARM (WoA) systems; support for setting driver mode to TCC on WoA systems has been removed.

Changes between nvidia-smi v610 Update and v595 ๐ŸŒˆ

  • Added -lmci/--lock-memory-clock-info command which communicates policy on how memory clock is locked for a given GPU
  • Added new topology subcommands to break up 'nvidia-smi topo -m' into focussed commands:
    • 'nvidia-smi topo -cpu': Display CPU/MEM affinity and NUMA node ID for all GPUs, if applicable
    • 'nvidia-smi topo -gpu': Display GPU-GPU connectivity matrix
    • 'nvidia-smi topo -nic': Display GPU-NIC connectivity matrix with enhanced legend
    • 'nvidia-smi topo -all': Display complete topology (GPUs, NICs, NVMe)
  • The new topology commands feature enhanced NIC legend (netdev name, PCI address, PCIe slot number) and improved matrix formatting with fixed-width spacing for better readability and machine parsing
  • Added support for displaying events that have occurred since driver load via a new command: 'nvidia-smi event-log'. Use "nvidia-smi event-log -h" for more information.
  • Added support for reading base64-encoded CPER events since driver load via a new command: 'nvidia-smi cper'. Use "nvidia-smi cper -h" for more information.
  • Legend item 'DR - Disabled by regkey' got added to nvidia-smi topo -p2p โœจ
  • nvidia-smi nvlink -e snagged some new fields, periodt:
    • PLR Xmit Blocks
    • PLR Xmit Retry Blocks
  • Temperature limit reporting labels in nvidia-smi got clarified so you're not squinting going "wait which temp??" ๐Ÿ˜ญ
    • 'GPU T.Limit Temp' โ†’ renamed to 'GPU Current T.Limit Temp'
    • 'Specification' got appended to the static thresholds:
      • GPU Shutdown/Slowdown/Max Operating T.Limit Temp
      • GPU Target Temperature
  • SW Thermal Slowdown clock event reason is now supported on Thor Jetson platforms ๐Ÿซถ
  • Brand new command: nvidia-smi nvlink --dataRate, and it displays nvlink data rate ๐Ÿ’…
  • GPU base power is now queryable and settable, bestie ๐Ÿ”ฅ
    • get/set it through nvidia-smi --power-limit, --query, and --query-gpu flags
    • set the requested GPU base power with nvidia-smi -pl XXXX --scope=2
    • get GPU base power settings with nvidia-smi -q -d POWER
    • new --query-gpu options for GPU base power, all here:
      • gpu.base.current
      • gpu.base.requested
      • gpu.base.default
      • gpu.base.min
      • gpu.base.max
  • The GPU Power Limit fields packed up and moved out of 'GPU Power Readings' into the 'GPU Ceiling Power Limit' sub-section ๐Ÿšš
    • in the text output, the fields are moved to the 'GPU Ceiling Power Limit' section
    • the XML output still keeps them in the old location, but heads up: they're getting removed in a future release ๐Ÿ’€
    • this affects these nvidia-smi --query-gpu fields under 'GPU Power Readings':
      • current_power_limit
      • requested_power_limit
      • default_power_limit
  • 'MMA stall %' metric landed in nvidia-smi dmon -s n so you can monitor MMA stall percentage ๐Ÿ‘€
  • New nvidia-smi --set-vf-derate and nvidia-smi --get-vf-derate-info commands, for applying and querying the graphics clock VF curve frequency derate โ€” they're a matching set ๐ŸŽ€
  • New --query-gpu option for the State-Of-Charge Power Smoothing feature enablement status:
    • power_smoothing.soc_power_smoothing_enabled

๐Ÿ•ฐ๏ธ Changes between nvidia-smi v595 Update and v590 ๐Ÿ•ฐ๏ธ

  • nvidia-smi nvlink -e got new fields:
    • Raw BER Lane 0
    • Raw BER Lane 1
    • Raw BER Total
    • Raw Errors Lane 0
    • Raw Errors Lane 1
  • 'NVLE' got renamed to 'NVLink Encryption' inside nvidia-smi nvlink --info โ€” she's going by her full name now ๐Ÿ’…
  • New command to read GPU PRM counters: nvidia-smi prm -c โญ
  • New Nvlink version print, 6.0, in nvidia-smi nvlink -info
  • New --query-gpu options for Power Smoothing โ€” there are a LOT, but I got you:
    • power_smoothing.enabled
    • power_smoothing.priv_level
    • power_smoothing.imm_ramp_down
    • power_smoothing.tmp_floor
    • power_smoothing.tmp_ceil
    • power_smoothing.hw_lifetime_remaining_percent
    • power_smoothing.max_percent_tmp_floor
    • power_smoothing.min_percent_tmp_floor
    • power_smoothing.num_preset_profiles
    • power_smoothing.active_profile
    • power_smoothing.curr_profile.percent_tmp_floor
    • power_smoothing.curr_profile.ramp_up_rate
    • power_smoothing.curr_profile.ramp_down_rate
    • power_smoothing.curr_profile.ramp_down_hysteresis
    • power_smoothing.admin_override.percent_tmp_floor
    • power_smoothing.admin_override.ramp_up_rate
    • power_smoothing.admin_override.ramp_down_rate
    • power_smoothing.admin_override.ramp_down_hysteresis
  • nvidia-smi topo is supported on Windows now ๐ŸชŸโœจ
  • New GPU Recovery output for Imex Domain
  • New field --query-gpu=bbx.time_run for nvidia-smi -q, which shows the cumulative number of seconds a GPU has been running with the driver loaded โฑ๏ธ
  • Automatic driver restart support got added to the driver model change command (-dm or --driver-model) on Windows. Also a new flag, --no-driver-restart, for the driver model change command if you'd rather skip that automatic restart ๐Ÿ™ˆ
  • nvidia-smi -r / nvidia-smi --gpu-reset can now allow driver restart of specific devices (using -i) or all devices on Windows
  • Version info got modified: Driver Version and CUDA Version are deprecated in favor of KMD Version and CUDA UMD Version respectively, so it more accurately reflects where the version info actually comes from ๐Ÿ‘‘
  • New field 'weight' in nvidia-smi vgpu -sl to query the vGPU software weight for each runlist
  • Support for disabling ARR mode is removed from the nvidia-smi vgpu set-scheduler-state command ๐Ÿ’€
  • ARR Mode field removed from nvidia-smi vgpu -ss, which reports the vGPU software scheduler state

๐Ÿ•ฐ๏ธ Changes between nvidia-smi v590 Update and v580 ๐Ÿ•ฐ๏ธ

  • NIC data-direct devices can now be included in nvidia-smi topo -m ๐Ÿฆ‹
  • System on Chip metrics can now be displayed via a new command, nvidia-smi soc (supported only on Tegra Linux systems, ngl)
  • RUSD (Read only User Shared Data) settings can now be set via a new command: nvidia-smi rusd
  • Applications Clocks got deprecated, and that includes all of this ๐Ÿ˜ญ:
    • Current Applications Clocks frequencies for Memory and Graphics clocks
    • Default Applications Clocks frequencies for Memory and Graphics clocks
    • the -ac option, for setting Applications Clocks frequencies for Memory and Graphics clocks
    • the -rac option, for resetting Applications Clocks frequencies for Memory and Graphics clocks
  • Nvlink version added to nvidia-smi nvlink -info output โœจ
  • New option nvidia-smi power-profiles -or to set and overwrite the requested power profiles
  • New field 'EDPp Multipler' in nvidia-smi -q, which expresses the EDPp ratio as a percentage
  • New field --query-gpu=edpp_multipler to retrieve the multipler
  • Unrepairable memory status added to the ECC field: nvidia-smi -q -d ECC ๐Ÿ’€
  • The 'FB Memory Usage' and 'BAR1 Memory Usage' fields in the nvidia-smi -q output got renamed to 'Shared FB Memory Usage' and 'Shared BAR1 Usage' respectively, so you know they're shared among the MIG devices associated with the same GPU instance ๐Ÿซถ
  • New sub-option -ei for nvidia-smi vgpu -sl, to query the vGPU software scheduler logs on the engine the user provides
  • New --query-gpu options for Delayed Power Smoothing โ€” yes, another long list, stay with me:
    • power_smoothing.supported
    • power_smoothing.primary_power_floor
    • power_smoothing.secondary_power_floor
    • power_smoothing.min_primary_floor_activation_offset
    • power_smoothing.min_primary_floor_activation_point
    • power_smoothing.window_multiplier
    • power_smoothing.curr_profile.secondary_power_floor
    • power_smoothing.curr_profile.primary_floor_act_window_multiplier
    • power_smoothing.curr_profile.primary_floor_tar_window_multiplier
    • power_smoothing.curr_profile.primary_floor_act_offset
    • power_smoothing.admin_override.secondary_power_floor
    • power_smoothing.admin_override.primary_floor_act_window_multiplier
    • power_smoothing.admin_override.primary_floor_tar_window_multiplier
    • power_smoothing.admin_override.primary_floor_act_offset
  • 4 brand new configurable profile fields in nvidia-smi power-smoothing ๐ŸŽ€

๐Ÿ•ฐ๏ธ Changes between nvidia-smi v580 Update and v575 ๐Ÿ•ฐ๏ธ

  • Device NVLINK Encryption status added to the new nvlink info command, nvidia-smi nvlink -info ๐Ÿ”
  • Muti-GPU mode NVLINK Encryption (NVLE) added in nvidia-smi conf-compute -mgm and nvidia-smi conf-compute -q
  • Nvlink Firmware Version info added to the nvlink info command nvidia-smi nvlink -info
  • Channel/TPC repair pending flags added to the ECC field: nvidia-smi -q -d ECC
  • Deprecated graphics voltage value removed from the Voltage section of nvidia-smi -q
  • Deprecated GPU Reset Status removed from nvidia-smi -q output
  • New option to read GPU PRM registers: nvidia-smi prm โญ
  • New 'Bus' reset option added to the existing reset command: nvidia-smi -r bus
  • New DLA Clocks section in nvidia-smi -q
  • New output field called 'GPU PDI' in the nvidia-smi -q output
  • New cmdline option --columns (or -col) to display the summary in multi-column format ๐Ÿ‘‘
  • The 'Memory-Usage' and 'BAR1-Usage' headers in the MIG device table got modified to 'Shared Memory-Usage' and 'Shared BAR1-Usage' respectively, so you know they're shared among the MIG devices associated with the same GPU instance
  • GPU Fabric output from nvidia-smi -q got updated:
    • Incorrect Configuration and Summary fields added to Fabric Health output
  • NVIDIA Jetson Thor platform support added ๐Ÿฆ‹
    • quick vibe check though โ€” these features are currently not supported on Jetson Thor:
      • Clock queries and commands
      • Power queries and commands
      • Thermal and temperature queries
      • Per-process utilization via nvidia-smi pmon
      • SOC memory utilization
  • New Incorrect Configuration Strings added to Fabric Health output:
    • Incompatible Gpu Firmware
    • Invalid Location
  • New command line options --get-hostname and --set-hostname, to get and set GPU hostnames respectively ๐Ÿท๏ธ
  • More new Incorrect Configuration Strings added to Fabric Health output:
    • GPU State Invalid
  • New Partition Assigned field added to Fabric Health output

๐Ÿ•ฐ๏ธ Changes between nvidia-smi v575 Update and v570 ๐Ÿ•ฐ๏ธ

  • New --query-gpu option inforom.checksum_validation, to check the inforom checksum validation (nvidia-smi --query-gpu inforom.checksum_validation) โœ…
  • nvidia-smi -q now prints both 'Instantaneous Power Draw' and 'Average Power Draw' in all cases where 'Power Draw' used to be printed โšก
  • nvidia-smi c2c -e can now display C2C Link Errors
  • nvidia-smi c2c -gLowPwrInfo can now display C2C Link Power state
  • New fields for Clock Event Reason Counters, which you can query with nvidia-smi -q or with the nvidia-smi -q -d PERFORMANCE display flag
  • New query GPU options for Clock Event Reason Counters: nvidia-smi --query-gpu=clocks_event_reasons_counters.{sw_power_cap,sw_thermal_slowdown,sync_boost,hw_thermal_slowdown,hw_power_brake_slowdown}
  • New fields for MIG timeslicing, queryable with nvidia-smi -q
  • New cmdline option -smts for nvidia-smi vgpu, to set vGPU MIG timeslice mode โณ
  • New sub-option -gi for nvidia-smi vgpu -c, to query the currently creatable vGPU types on the GPU Instance the user provides
  • New sub-option -gi for nvidia-smi vgpu -q, to query detailed information of the currently active vGPU instances on the GPU Instance the user provides ๐Ÿซถ
  • Added a new sub-option -gi to nvidia-smi vgpu -ss so you can query the vGPU software scheduler state on the GPU Instance you picked ๐Ÿ’…
  • Added a new sub-option -gi to nvidia-smi vgpu -sl so you can pull the vGPU software scheduler logs for the GPU Instance you provided โœจ
  • Added a new cmdline option -ghm to nvidia-smi vgpu to grab the vGPU heterogeneous mode on the GPU Instance you provided ๐Ÿซถ
  • Added a new sub-option -gi to nvidia-smi vgpu -shm to set the vGPU heterogeneous mode on the GPU Instance you provided ๐ŸŒธ
  • Added a new field for max instances per GPU Instance โ€” query it with nvidia-smi vgpu -s -v ๐Ÿ‘‘
  • Added a new sub-option -gi to nvidia-smi vgpu set-scheduler-state to set the vGPU software scheduler state on the GPU Instance you provided ๐Ÿ’–
  • Added a new sub-option -gi to nvidia-smi vgpu -c -v so you can query all the detailed info about creatable vGPU types on the GPU Instance you provided ๐Ÿ”ฅ
  • Added a new cmdline option --query-gpu-instance-vgpu-scheduler-logs to nvidia-smi vgpu so you can get the vGPU software scheduler logs for the GPU Instance you provided, in CSV format. Peep nvidia-smi vgpu --help-gpu-instance-vgpu-query-scheduler-logs for the deets ๐ŸŽ€

๐ŸŒˆ Changes between nvidia-smi v570 Update and v565

  • Added new cmdline options -\sLWidth and -\gLWidth to nvidia-smi nvlink ๐Ÿ’ซ
  • Added a whole new ability to display the NVLink sleep state with nvidia-smi nvlink -\s for Blackwell and onward generations ๐ŸŒ™
  • Added new query GPU options for average/instant module power draw, bestie: nvidia-smi --query-gpu=module.power.draw.{average,instant} โšก
  • Added new query GPU options for default/max/min module power limits: nvidia-smi --query-gpu=module.power.{default_limit,max_limit,min_limit} ๐Ÿ”‹
  • Added new query GPU options for module power limits: nvidia-smi --query-gpu=module.power.limit ๐Ÿ’œ
  • Added new query GPU options for enforced module power limits: nvidia-smi --query-gpu=module.enforced.power.limit ๐ŸŽ€
  • Added new query GPU aliases for the GPU Power options ๐Ÿ˜Œ
  • Added a new command to get confidential compute info: nvidia-smi conf-compute -q ๐Ÿคซ
  • Added a new Power Profiles section in nvidia-smi -q plus the matching -d display flag POWER_PROFILES ๐Ÿ‘‘
  • Added a new Power Profiles option, nvidia-smi power-profiles, to get/set power-profiles-related info โœจ
  • Added the platform information query to nvidia-smi -q ๐Ÿ–ฅ๏ธ
  • Added the platform information query to nvidia-smi --query-gpu platform ๐Ÿ›ฐ๏ธ
  • Added a new Power Smoothing option, nvidia-smi power-smoothing, to set power-smoothing-related values ๐Ÿงˆ
  • Added a new Power Smoothing section in nvidia-smi -q plus the matching -d display flag POWER_SMOOTHING ๐ŸŒŠ
  • Deprecated the graphics voltage value from the Voltage section of nvidia-smi -q. Voltage now always displays as N/A and is getting removed in a future release โ€” so don't get attached ๐Ÿ˜ญ
  • Added a new topo option, nvidia-smi topo -nvme, to display the connecting path between GPUs and NVMes ๐Ÿ”—
  • Changed the help string for the command nvidia-smi topo -p2p -p from prop to pcie so it actually describes the p2p capability better ๐Ÿ’€
  • Added a new command, nvidia-smi pci -gCnt, to query PCIe RX/TX Bytes ๐Ÿ“Š
  • Added EGM capability display under a new Capabilities section in the nvidia-smi -q command ๐Ÿซถ
  • Added multiGpuMode display via nvidia-smi using nvidia-smi conf-compute --get-multigpu-mode or nvidia-smi conf-compute -mgm ๐ŸŽฎ
  • GPU Reset Status in nvidia-smi -q has been deprecated โ€” GPU Recovery action provides all the necessary actions, so it's giving "we don't need that anymore" ๐Ÿ’…
  • nvidia-smi -q will now display the DRAM encryption state ๐Ÿ”
  • Added nvidia-smi -den / --dram-encryption 0/1 to disable/enable DRAM encryption ๐Ÿ”“
  • Added new status to nvidia fabric health. nvidia-smi -q will display 3 new fields in Fabric Health: Route Recovery in progress, Route Unhealthy, and Access Timeout Recovery ๐Ÿฉบ
  • In nvidia-smi -q, Platform Info โ†’ RACK GUID is now Platform Info โ†’ RACK Serial Number ๐Ÿ”„
  • In nvidia-smi --query-gpu, a new option for gpu_recovery_action is added ๐Ÿ› ๏ธ
  • Added new counters for NVLink5 in nvidia-smi nvlink -e, and they're kinda iconic:
    • Effective Errors โ€” gets the sum of the number of errors in each NVLink packet ๐Ÿ“ฆ
    • Effective BER โ€” gets the Effective BER for effective errors ๐Ÿ“‰
    • FEC Errors โ€” 0 to 15 โ€” gets the count of symbol errors that are corrected โœ…
  • Added a new output field called GPU Fabric GUID to the nvidia-smi -q output ๐Ÿชช
  • Added a new property called platform.gpu_fabric_guid to nvidia-smi --query-gpu ๐Ÿท๏ธ
  • Updated the nvidia-smi nvlink -gLowPwrInfo command to display the Power Threshold Range and Units ๐Ÿ“

๐ŸŒธ Changes between nvidia-smi v565 Update and v560

  • Added the reporting of vGPU homogeneous mode to nvidia-smi -q ๐Ÿ 
  • Added the reporting of homogeneous vGPU placements to nvidia-smi vgpu -s -v, complementing the existing reporting of heterogeneous vGPU placements โœจ

๐Ÿฆ‹ Changes between nvidia-smi v560 Update and v555

  • Added Atomic Caps Inbound in the PCI section of nvidia-smi -q ๐Ÿงฌ
  • Updated ECC and row remapper output for the options --query-gpu and --query-remapped-rows ๐Ÿ”„
  • Added support for events including ECC single-bit error storm, DRAM retirement, DRAM retirement failure, contained/nonfatal poison, and uncontained/fatal poison โ˜ ๏ธ
  • Added support in nvidia-smi nvlink -e to display NVLink5 error counters ๐Ÿ”ฅ

๐Ÿ’œ Changes between nvidia-smi v550 Update and v545

  • Added a new cmdline option to print out version info: --version ๐Ÿท๏ธ
  • Added the ability to print out only the GSP firmware version with nvidia-smi -q -d. Example commandline: nvidia-smi -q -d GSP_FIRMWARE_VERSION ๐ŸŒŸ
  • Added support to query pci.baseClass and pci.subClass. See nvidia-smi --help-query-gpu for details ๐Ÿ‘€
  • Added PCI base and sub classcodes to the nvidia-smi -q output ๐Ÿงพ
  • Added a new cmdline option --format to nvidia-smi dmon to support the csv, nounit and noheader format specifiers ๐ŸŽจ
  • Added a new cmdline option --gpm-options to nvidia-smi dmon to support GPM metrics report in MIG mode ๐Ÿงฉ
  • Added the NVJPG and NVOFA utilization report to nvidia-smi pmon ๐Ÿ–ผ๏ธ
  • Added the NVJPG and NVOFA utilization report to nvidia-smi -q -d utilization ๐Ÿ“ˆ
  • Added the NVJPG and NVOFA utilization report to nvidia-smi vgpu -q to report NVJPG/NVOFA utilization on active vGPUs ๐ŸŒ€
  • Added the NVJPG and NVOFA utilization report to nvidia-smi vgpu -u to periodically report NVJPG/NVOFA utilization on active vGPUs โฑ๏ธ
  • Added the NVJPG and NVOFA utilization report to nvidia-smi vgpu -p to periodically report NVJPG/NVOFA utilization on running processes of active vGPUs ๐Ÿƒโ€โ™€๏ธ
  • Added a new cmdline option -shm to nvidia-smi vgpu to set vGPU heterogeneous mode ๐ŸŽ›๏ธ
  • Added the reporting of vGPU heterogeneous mode in nvidia-smi -q ๐Ÿ“ฃ
  • Added the ability to call nvidia-smi mig -lgip and nvidia-smi mig -lgipp without requiring MIG to be enabled ๐Ÿ™Œ
  • Added support to query confidential compute key rotation threshold info ๐Ÿ”‘
  • Added support to set confidential compute key rotation max attacker advantage ๐Ÿ›ก๏ธ
  • Added a new cmdline option --sparse-operation-mode to nvidia-smi clocks to set the sparse operation mode ๐Ÿ•น๏ธ
  • Added the reporting of sparse operation mode to nvidia-smi -q -d PERFORMANCE ๐Ÿ“Š

๐ŸŽ€ Changes between nvidia-smi v535 Update and v545

  • Added support to query the timestamp and duration of the latest flush of the BBX object to the inforom storage โณ
  • Added support for reporting out GPU Memory power usage โšก

โœจ Changes between nvidia-smi v535 Update and v530

  • Updated the SRAM error status reported in the ECC query nvidia-smi -q -d ECC ๐Ÿง 
  • Added support to query and report the GPU JPEG and OFA (Optical Flow Accelerator) utilizations ๐ŸŽž๏ธ
  • Removed the deprecated stats command ๐Ÿ—‘๏ธ
  • Added support to set the vGPU software scheduler state ๐ŸŽš๏ธ
  • Renamed counter collection unit to gpu performance monitoring ๐Ÿท๏ธ
  • Added new C2C Mode reporting to device query ๐Ÿ”Œ
  • Added back clock_throttle_reasons to --query-gpu so we don't break backwards compatibility ๐Ÿซถ
  • Added support to get confidential compute CPU capability and GPUs capability ๐Ÿ’ป
  • Added support to set confidential compute unprotected memory and GPU ready state ๐Ÿ”ง
  • Added support to get confidential compute memory info and GPU ready state ๐Ÿ“ฅ
  • Added support to display confidential compute devtools mode, environment, and feature status ๐Ÿงช

๐ŸŒˆ Changes between nvidia-smi v525 Update and v530

  • Added support to query power.draw.average and power.draw.instant. See nvidia-smi --help-query-gpu for details โšก
  • Added support to get the vGPU software scheduler state ๐ŸŽฏ
  • Added support to get the vGPU software scheduler logs ๐Ÿ“œ
  • Added support to get the vGPU software scheduler capabilities ๐Ÿงฐ
  • Renamed Clock Throttle Reasons to Clock Event Reasons ๐Ÿ”

๐Ÿฆ‹ Changes between nvidia-smi v520 Update and v525

  • Added support to query and set counter collection unit stream state ๐ŸŒŠ

๐Ÿ’… Changes between nvidia-smi v470 Update and v510

  • Added new Reserved memory reporting to the FB memory output ๐Ÿงพ

๐Ÿ“ Changes between nvidia-smi v465 Update and v470

  • Added support to query power hint ๐Ÿ’ก

๐Ÿงš Changes between nvidia-smi v460 Update and v465

  • Removed support for the -acp, --application-clock-permissions option ๐Ÿšซ

โญ Changes between nvidia-smi v450 Update and v460

  • Added an option to specify placement when creating a MIG GPU instance ๐Ÿงฑ
  • Added support to query and control the boost slider ๐ŸŽš๏ธ

๐ŸŒธ Changes between nvidia-smi v445 Update and v450

  • Added --lock-memory-clock and --reset-memory-clock commands to lock to the closest min/max Memory clock provided, plus the ability to reset the Memory clock ๐Ÿ”’
  • Allow fan speeds greater than 100% to be reported ๐ŸŒฌ๏ธ
  • Added topo support to display NUMA node affinity for GPU devices ๐Ÿ—บ๏ธ
  • Added support to create MIG instances using profile names ๐Ÿท๏ธ
  • Added support to create the default compute instance while creating a GPU instance ๐Ÿงฉ
  • Added support to query and disable MIG mode on Windows ๐ŸชŸ
  • Removed support of the GPU reset (-r) command on MIG-enabled vGPU guests ๐Ÿ™…โ€โ™€๏ธ

๐Ÿ’œ Changes between nvidia-smi v418 Update and v445

  • Added support for Multi Instance GPU (MIG) ๐Ÿง
  • Added support to individually reset NVLink-capable GPUs based on the NVIDIA Ampere architecture โšก

๐ŸŽ€ Changes between nvidia-smi v361 Update and v418

  • Support for Volta and Turing architectures, bug fixes, performance improvements, and new features ๐Ÿ› ๏ธ

๐Ÿ‘‘ Changes between nvidia-smi v352 Update and v361

  • Added nvlink support to expose the publicly available NVLINK NVML APIs ๐Ÿ”—
  • Added a clocks sub-command with synchronized boost support โฐ
  • Updated nvidia-smi stats to report the GPU temperature metric ๐ŸŒก๏ธ
  • Updated nvidia-smi dmon to support PCIe throughput ๐Ÿš€
  • ๐Ÿ”ฅ Updated nvidia-smi daemon/replay to support PCIe throughput
  • ๐Ÿ”ฅ Updated nvidia-smi dmon, daemon and replay to support PCIe Replay Errors
  • ๐ŸŽ€ Added GPU part numbers in nvidia-smi -q
  • ๐Ÿ’€ Removed support for exclusive thread compute mode (gone, bestie, it's not coming back)
  • ๐ŸŽ€ Added Video (encoder/decode) clocks to the Clocks and Max Clocks display of nvidia-smi -q
  • ๐ŸŒก๏ธ Added memory temperature output to nvidia-smi dmon
  • ๐Ÿ”’ Added --lock-gpu-clock and --reset-gpu-clock command to lock to closest min/max GPU clock provided and reset clock
  • ๐ŸŒˆ Added --cuda-clocks to override or restore default CUDA clocks

โœจ Changes between nvidia-smi v346 Update and v352 โœจ

  • ๐Ÿ—บ๏ธ Added topo support to display affinities per GPU
  • ๐Ÿ—บ๏ธ Added topo support to display neighboring GPUs for a given level
  • ๐Ÿ—บ๏ธ Added topo support to show pathway between two given GPUs
  • ๐Ÿ‘€ Added 'nvidia-smi pmon' command-line for process monitoring in scrolling format
  • ๐Ÿ› Added '--debug' option to produce an encrypted debug log for use in submission of bugs back to NVIDIA
  • ๐Ÿฉน Fixed reporting of Used/Free memory under Windows WDDM mode
  • โฑ๏ธ The accounting stats is updated to include both running and terminated processes. The execution time of running process is reported as 0 and updated to actual value when the process is terminated.

โœจ Changes between nvidia-smi v340 Update and v346 โœจ

  • ๐ŸŽ€ Added reporting of PCIe replay counters
  • ๐ŸŽ€ Added support for reporting Graphics processes via nvidia-smi
  • ๐ŸŽ€ Added reporting of PCIe utilization
  • ๐Ÿ“œ Added dmon command-line for device monitoring in scrolling format
  • ๐Ÿ‘ป Added daemon command-line to run in background and monitor devices as a daemon process. Generates dated log files at /var/log/nvstats/
  • โช Added replay command-line to replay/extract the stat files generated by the daemon tool

โœจ Changes between nvidia-smi v331 Update and v340 โœจ

  • ๐ŸŒก๏ธ Added reporting of temperature threshold information.
  • ๐Ÿท๏ธ Added reporting of brand information (e.g. Tesla, Quadro, etc.)
  • ๐Ÿ‘‘ Added support for K40d and K80.
  • ๐Ÿ“Š Added reporting of max, min and avg for samples (power, utilization, clock changes). Example commandline: nvidia-smi -q -d power,utilization, clock
  • ๐Ÿ“ˆ Added nvidia-smi stats interface to collect statistics such as power, utilization, clock changes, xid events and perf capping counters with a notion of time attached to each sample. Example commandline: nvidia-smi stats
  • ๐Ÿซถ Added support for collectively reporting metrics on more than one GPU. Used with comma separated with '-i' option. Example: nvidia-smi -i 0,1,2
  • ๐ŸŽฅ Added support for displaying the GPU encoder and decoder utilizations
  • ๐Ÿงช Added nvidia-smi topo interface to display the GPUDirect communication matrix (EXPERIMENTAL)
  • ๐Ÿชช Added support for displayed the GPU board ID and whether or not it is a multiGPU board
  • ๐Ÿšซ Removed user-defined throttle reason from XML output

โœจ Changes between nvidia-smi v5.319 Update and v331 โœจ

  • ๐ŸŽ€ Added reporting of minor number.
  • ๐ŸŽ€ Added reporting BAR1 memory size.
  • ๐ŸŽ€ Added reporting of bridge chip firmware.

โœจ Changes between nvidia-smi v4.319 Production and v4.319 Update โœจ

  • ๐Ÿ” Added new --applications-clocks-permission switch to change permission requirements for setting and resetting applications clocks.

โœจ Changes between nvidia-smi v4.304 and v4.319 Production โœจ

  • ๐Ÿ–ฅ๏ธ Added reporting of Display Active state and updated documentation to clarify how it differs from Display Mode and Display Active state
  • ๐Ÿ†” For consistency on multi-GPU boards nvidia-smi -L always displays UUID instead of serial number
  • ๐Ÿค– Added machine readable selective reporting. See SELECTIVE QUERY OPTIONS section of nvidia-smi -h
  • ๐Ÿ“„ Added queries for page retirement information. See --help-query-retired-pages and -d PAGE_RETIREMENT
  • โœ๏ธ Renamed Clock Throttle Reason User Defined Clocks to Applications Clocks Setting
  • ๐Ÿšฆ On error, return codes have distinct non zero values for each error class. See RETURN VALUE section
  • ๐Ÿฉบ nvidia-smi -i can now query information from healthy GPU when there is a problem with other GPU in the system
  • ๐Ÿ“ All messages that point to a problem with a GPU print pci bus id of a GPU at fault
  • ๐Ÿšฉ New flag --loop-ms for querying information at higher rates than once a second (can have negative impact on system performance)
  • ๐Ÿงพ Added queries for accounting processes. See --help-query-accounted-apps and -d ACCOUNTING
  • โšก Added the enforced power limit to the query output

โœจ Changes between nvidia-smi v4.304 RC and v4.304 Production โœจ

  • ๐ŸŽ›๏ธ Added reporting of GPU Operation Mode (GOM)
  • ๐ŸŽ›๏ธ Added new --gom switch to set GPU Operation Mode

โœจ Changes between nvidia-smi v3.295 and v4.304 RC โœจ

  • ๐Ÿงน Reformatted non-verbose output due to user feedback. Removed pending information from table.
  • ๐Ÿ“ฃ Print out helpful message if initialization fails due to kernel module not receiving interrupts
  • ๐Ÿฉน Better error handling when NVML shared library is not present in the system
  • ๐Ÿ” Added new --applications-clocks switch
  • ๐Ÿ” Added new filter to --display switch. Run with -d SUPPORTED_CLOCKS to list possible clocks on a GPU
  • ๐Ÿงฎ When reporting free memory, calculate it from the rounded total and used memory so that values add up
  • โšก Added reporting of power management limit constraints and default limit
  • โšก Added new --power-limit switch
  • ๐Ÿงต Added reporting of texture memory ECC errors
  • ๐Ÿข Added reporting of Clock Throttle Reasons

โœจ Changes between nvidia-smi v2.285 and v3.295 โœจ

  • ๐Ÿšจ Clearer error reporting for running commands (like changing compute mode)
  • ๐Ÿค When running commands on multiple GPUs at once N/A errors are treated as warnings.
  • ๐Ÿ†” nvidia-smi -i now also supports UUID
  • ๐Ÿ”„ UUID format changed to match UUID standard and will report a different value.

โœจ Changes between nvidia-smi v2.0 and v2.285 โœจ

  • ๐ŸŽ€ Report VBIOS version.
  • ๐ŸŽ€ Added -d/--display flag to filter parts of data
  • ๐ŸŽ€ Added reporting of PCI Sub System ID
  • ๐Ÿ“š Updated docs to indicate we support M2075 and C2075
  • ๐ŸŽ€ Report HIC HWBC firmware version with -u switch
  • โฐ Report max(P0) clocks next to current clocks
  • ๐ŸŽ€ Added --dtd flag to print the device or unit DTD
  • ๐Ÿ’ฌ Added message when NVIDIA driver is not running
  • ๐Ÿ”— Added reporting of PCIe link generation (max and current), and link width (max and current).
  • ๐Ÿ”“ Getting pending driver model works on non-admin
  • ๐ŸชŸ Added support for running nvidia-smi on Windows Guest accounts
  • ๐Ÿ“– Running nvidia-smi without -q command will output non verbose version of -q instead of help
  • ๐Ÿฉน Fixed parsing of -l/--loop= argument (default value, 0, to big value)
  • ๐Ÿ”ค Changed format of pciBusId (to XXXX:XX:XX.X - this change was visible in 280)
  • ๐Ÿ”ค Parsing of busId for -i command is less restrictive. You can pass 0:2:0.0 or 0000:02:00 and other variations
  • ๐Ÿท๏ธ Changed versioning scheme to also include 'driver version'
  • โœ… XML format always conforms to DTD, even when error conditions occur
  • ๐ŸŽ€ Added support for single and double bit ECC events and XID errors (enabled by default with -l flag disabled for -x flag)
  • ๐Ÿ” Added device reset -r --gpu-reset flags
  • ๐Ÿ“‹ Added listing of compute running processes
  • ๐Ÿท๏ธ Renamed power state to performance state. Deprecated support exists in XML output only.
  • ๐Ÿ”ข Updated DTD version number to 2.0 to match the updated XML output

๐ŸŒธ SEE ALSO ๐ŸŒธ

On Linux, the driver README is installed as /usr/share/doc/NVIDIA_GLX-1.0/README.txt โ€” like, go read it, it's giving lore ๐Ÿ’–

๐Ÿ’œ AUTHOR ๐Ÿ’œ

NVIDIA Corporation ๐Ÿ‘‘

Copyright 2011-2026 NVIDIA Corporation


okay bestie that's literally the whole page, we ate and left zero crumbs ๐Ÿ’…โœจ

Version nvidia-smi 615.78 ๐ŸŒˆ โ€” Tue Oct 6 2026 ๐Ÿฆ‹ โ€” page nvidia-smi(1) ๐ŸŽ€

go check your GPUs, ily, bye ๐Ÿซถ๐Ÿ’–

๐Ÿ“ฆ where this page comes from