dcgmi diag#
NAME#
dcgmi-diag - run DCGM active health diagnostics
SYNOPSIS#
dcgmi diag --run <suite-or-tests>
[--entity-id <entities> | --group <group-id>]
[--parameters <test.parameter=value>]...
[--configfile <path>] [--iterations <count>]
[--timeout <seconds>] [--verbose] [--json]
[<diagnostic-options>] [--host <address>]
DESCRIPTION#
dcgmi diag runs active tests that exercise deployment, hardware, and
software components. A run can select a predefined suite level, one named
test, or a comma-separated list of named tests.
Diagnostics can consume substantial GPU, CPU, memory, power, and fabric resources. Coordinate a run with workload owners.
DCGM supports diagnostics on datacenter and non-datacenter GPUs, including GeForce and Quadro GPUs. Non-datacenter GPUs support level 1; use higher levels only where support is explicitly documented for the product. See Feature Availability by GPU Class.
OPTIONS#
Test selection#
-r <suite-or-tests>,--run <suite-or-tests>Select the diagnostics to run. A single digit selects a predefined suite:
1Quick deployment checks, normally lasting seconds.
2Medium validation, normally lasting approximately two minutes.
3Long hardware diagnostics, normally lasting approximately 15 minutes.
4Extended, longer-running hardware diagnostics.
The names
quickandshort,medium,long, andxlongare aliases for levels 1 through 4, respectively. A canonical test name selects one test, and commas select several named tests, for examplepcie,diagnostic. See DIAGNOSTIC TESTS for the complete name and suite catalogue.-p <test.parameter=value>,--parameters <test.parameter=value>Override a diagnostic parameter. The option is repeatable, and one argument can contain semicolon-separated assignments. A key normally has the form
<test-name>.<parameter-name>. A key may be defined only once, except that repeatedpassthrough_argsdefinitions are combined. The test references in DIAGNOSTIC TESTS list supported parameters and value constraints.-c <path>,--configfile <path>Read diagnostic configuration from a local file and send its contents with the request. The file must fit within the DCGM diagnostic configuration size limit. See Diagnostic Configuration File for the complete YAML schema, GPU matching, merge behavior, and precedence rules; see Example configuration for a task-specific example.
Target selection#
-i <entities>,--entity-id <entities>Run on a comma-separated entity list. See dcgmi for selector syntax. When no group or deprecated GPU list is supplied, the default is all GPUs and all NVIDIA CPUs (
*,cpu:*).-g <group-id>,--group <group-id>Run on a persistent group. Do not combine with
--entity-idor--gpuList.--gpuList <gpu-id-list>Run on a comma-separated list of numeric GPU IDs. This compatibility option is deprecated; use
--entity-id.-f <gpu-id-list>,--fakeGpuList <gpu-id-list>Use fake GPU IDs. This option is for DCGM testing and cannot be combined with a group or normal GPU list.
-n <gpu:N>,--expectedNumEntities <gpu:N>Fail before testing if the number of active GPUs is not
N. This check is supported with the default entity selection or the built-in all-GPU group, not with a custom entity or GPU list.
Execution control#
--iterations <count>Run the requested diagnostics consecutively
counttimes. The default is 1, and the value must be greater than zero.-t <seconds>,--timeout <seconds>Set an overall execution timeout. Zero, the default, means unlimited. When explicit
test_durationparameters are present, their sum must be less than the timeout.--watch-frequency <microseconds>Set the field-sampling interval. The default is 5,000,000 microseconds; the accepted range is 100,000 through 60,000,000 microseconds.
--enable-heartbeatEnable the diagnostic heartbeat exchanged with the host engine. This option is available in DCGM 4.4.2 and later. If the initiating client disconnects or stops sending heartbeats, the host engine cancels its active diagnostic. The heartbeat is separate from diagnostic task hang detection, host-engine hang detection, and the overall
--timeoutlimit.
Diagnostic task hang detection#
Diagnostic task hang detection is available in DCGM 4.4 and later. It is
enabled by default and monitors registered diagnostic threads and processes
for inactivity. NVVS_HANGDETECT_DISABLE disables this mechanism, and
NVVS_HANGDETECT_EXPIRY_SEC configures its inactivity expiry in the host
engine environment. See Environment for the
configuration contract.
Host-engine hang detection is a separate mechanism that is available in DCGM 4.4.2 and later. See Host Engine Environment Variables Affecting Hang Detection.
Failure handling#
--fail-earlyCheck for failure while targeted-power, targeted-stress, SM-stress, and diagnostic tests are running instead of checking only at completion.
--check-interval <seconds>Set the early-failure check interval. This option requires
--fail-early. The default is 5 seconds and the accepted range is 1 through 300 seconds.--clocksevent-mask <reasons-or-mask>Ignore selected clock-event reasons. Supply a comma-separated list of
HW_SLOWDOWN,SW_THERMAL,HW_THERMAL, andHW_POWER_BRAKE(case-insensitive), or a decimal mask made from values 8, 32, 64, and 128.--throttle-mask <reasons-or-mask>Deprecated alias for
--clocksevent-mask. Do not specify both forms.--ignoreErrorCodes <specification>Ignore suppressible diagnostic error codes. A comma-separated code list such as
28,140applies to all supported entities. Semicolon-separated GPU clauses such asgpu0:28;gpu1:140apply codes to individual GPUs.*:*requests every suppressible code on all entities. DCGM 4.6 supports per-entity clauses for GPUs only. See Diagnostic Errors for the diagnostic error catalogue and response categories.
Output and logging#
-v,--verboseInclude informational and warning messages for each test.
-j,--jsonUse JSON output. See JSON output.
--statsonfailWrite plugin statistics files only when a test fails.
--statspath <directory>Write plugin statistics under the specified server-side directory instead of the diagnostic working directory. The path must be shorter than 128 characters.
--debugLogFile <path>Set the encrypted server-side diagnostic debug-log path. When a debug level is set without this option, the default file is
nvvs.log. The path must be shorter than 128 characters.-d <level>,--debugLevel <level>Set diagnostic logging to
NONE,FATAL,ERROR,WARN,INFO,DEBUG, orVERB. The default diagnostic severity isDEBUG.
Common options#
--host <address>Require a connection to the specified host engine.
-h,--helpPrint generated usage information and exit.
Removed option#
--trainTraining mode has been removed. DCGM 4.6 rejects this option even though it is present in the generated option list.
DIAGNOSTIC TESTS#
Test names#
Use the lowercase names in the following table as the documented canonical
values for --run and as the test-name prefix for --parameters.
Test-name matching is case-insensitive, and spaces in a requested name are
normalized to underscores, but scripts should use the documented spelling.
An explicitly named run also performs the built-in software deployment
checks before the requested GPU tests. software is the result name for
those built-in checks, but DCGM 4.6 does not accept it as a standalone
--run value; use the level-1 suite to run the deployment checks alone. A
canonical name does not guarantee that a test is runnable: the host engine
constructs the available set from the diagnostic plugins it can load, and a
plugin can require particular hardware, entities, libraries, executables,
environment variables, or privileges. An unavailable or unsupported
requested test produces an error; dcgmi 4.6 does not provide a public
operation that lists the tests available at runtime.
Name |
Purpose |
Included by suite |
Availability and reference |
|---|---|---|---|
|
Verify that a CUDA context can be created on the target GPU. |
Named runs only |
Requires the CUDA context-create plugin and a supported GPU. See Context Create Plugin. |
|
Test GPU memory allocation, access, integrity, and cache behavior. |
2 through 4; |
See GPU Memory Plugin. |
|
Exercise PCIe and peer-to-peer paths and check bandwidth, latency, link state, and error counters. |
2 through 4; |
|
|
Exercise GPU compute hardware with sustained matrix operations. |
3, 4, and |
See Diagnostic Plugin. |
|
Measure and validate local GPU memory bandwidth. |
3, 4, and |
|
|
Maintain a requested compute-performance load. |
3, 4, and |
|
|
Drive a GPU toward a requested power level. |
3, 4, and |
|
|
Validate GPU interconnect bandwidth with |
3, 4, and |
Requires the plugin and its matching executable. See NVBandwidth Plugin. |
|
Exercise GPU memory with a set of memory-test patterns. |
4 |
See Memtest Diagnostic. |
|
Apply a rapidly changing compute and power load. |
4 |
Suite selectors#
Each numbered suite includes the preceding level. Tests marked as conditional in the table above are included only when their plugins advertise them for the running host engine and target entities.
Accepted selector |
Suite |
Added tests |
|---|---|---|
|
Quick |
Built-in |
|
Medium |
|
|
Long |
|
|
Extra long |
|
|
Production meta-suite |
The level-3 set with production-test behavior for supported plugins.
This selector is not a numbered validation level and does not add the
level-4 |
EXIT STATUS#
The following shell statuses identify diagnostic-specific outcomes. They are
the low eight bits of the corresponding negative dcgmReturn_t value; see
EXIT STATUS for conversion details and for failures common to all
dcgmi commands.
Status |
DCGM status |
Meaning |
|---|---|---|
|
|
The requested diagnostics completed without a reported error. |
|
|
The diagnostic ran but reported an error. |
|
|
Another diagnostic is already running. |
|
|
DCGM could not launch the diagnostic. |
|
|
The diagnostic reported a condition that requires isolation. |
|
|
The diagnostic executable was not found. |
|
|
The diagnostic process was terminated by a signal. |
|
|
No available diagnostic matched the request. |
Parser, connection, resource, host-engine, and other DCGM failures can return
additional nonzero statuses. Use the status name and message printed by
dcgmi as the authoritative reason.
EXAMPLES#
Run the quick suite on all default entities:
$ dcgmi diag --run 1
Run two named tests on GPUs 0 and 1:
$ dcgmi diag --run pcie,diagnostic --entity-id gpu:0,gpu:1
Run the PCIe test three times and return JSON:
$ dcgmi diag --run pcie --iterations 3 --json
Set a test parameter and a ten-minute timeout:
$ dcgmi diag --run targeted_power \
--parameters targeted_power.test_duration=300 \
--timeout 600
SEE ALSO#
dcgmi, dcgmi health, dcgmi mndiag, Diagnostics, Debugging and Troubleshooting