Diagnostic Plugin#
The Diagnostic plugin seeks to expose GPU compute or framebuffer data-path instability under sustained load. It verifies matrix results and framebuffer data, reports monitored health errors observed during the workload, and can identify cross-GPU outliers in throughput, clocks, or board power when the corresponding tolerances are enabled.
Availability and prerequisites#
The canonical test name is diagnostic. It runs on selected physical GPUs.
The plugin requires CUDA support and should run on GPUs that are not serving
production workloads because it applies sustained compute, memory, and power
load.
Behavior#
This process stresses the GPU by drawing substantial power and providing a high level of throughput for three minutes by default. During this process, the GPU will be monitored for all standard errors (XIDs, temperature violations, uncorrectable memory errors, etc.) as well as the correctness of data being written and read.
Parameters#
The following table lists the global parameters for the diagnostic plugin:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
max_sbe_errors |
Double |
Blank |
This is the threshold beyond which SBE’s are treated as errors. |
test_duration |
Double |
180.0 |
This is the time in seconds that the test should run. |
use_doubles |
Bool |
False |
This indicates doubles should be used instead of floats. |
temperature_max |
Double |
See description |
Accepted for compatibility. In DCGM 4.6, common error monitoring uses the GPU’s reported maximum operating temperature rather than this parameter. Do not use it to impose a lower site-specific limit. |
is_allowed |
Bool |
False |
This is whether the specified test is allowed to run. |
matrix_dim |
Double |
2048.0 (8192.0 for Blackwell and newer) |
This is the starting dimension of the matrix used for S/Dgemm. |
precision |
String |
Automatic |
Selects one or more precisions. The value is matched
case-insensitively for |
gflops_tolerance_pcnt |
Double |
0.0 |
Maximum permitted fractional shortfall from the mean GFLOPS of the
tested GPUs. For example, |
always_use_tensor |
Bool |
False (True for Blackwell and newer) |
Instructs CUDA to use Tensor cores for calculations where possible. |
tolerance_pcnt |
Double |
0.0 |
Default fractional tolerance for both clock and power comparisons. The field-specific parameters take precedence. |
clocks_tolerance_pcnt |
Double |
0.0 |
Maximum permitted fractional shortfall from the mean SM clock of the
tested GPUs. |
power_tolerance_pcnt |
Double |
0.0 |
Maximum permitted fractional shortfall from the mean board power of
the tested GPUs. |
Examples#
Run the diagnostic for 5 minutes:
$ dcgmi diag -r 3 -p diagnostic.test_duration=300.0
Run the diagnostic, with a smaller starting dimension for matrix operations:
$ dcgmi diag -r 3 -p diagnostic.matrix_dim=1024.0
Run the diagnostic, reporting an error if a GPU is more than 60% below the mean GFLOPS across all tested GPUs:
$ dcgmi diag -r 3 -p diagnostic.gflops_tolerance_pcnt=0.60
Run the diagnostic, using double precision:
$ dcgmi diag -r 3 -p diagnostic.precision=double
Results and failure conditions#
Condition |
Result or code |
Interpretation |
|---|---|---|
A computed value does not match the expected value. |
|
The compute or framebuffer data path produced incorrect data. |
A computation produces a NaN where a valid value is expected. |
|
The numerical workload produced an invalid result. |
GFLOPS, average SM clock, or average board power falls below an enabled cross-GPU tolerance. |
|
The message names the metric and affected GPU. This is a comparative threshold, not an absolute performance guarantee. |
A common monitored condition occurs, including an uncorrectable memory error, XID, failed or pending row remap, thermal violation, or an enabled SBE threshold violation. |
Fail with the condition-specific |
See Diagnostic Errors; the reported code identifies the monitored condition. |
CUDA is not bound to the expected device. |
|
Check device visibility and the diagnostic process environment. |
CUDA initialization, context creation, or another test operation cannot be completed. |
|
This is an execution failure and does not establish a hardware defect by itself. |
The plugin is disabled. |
|
Enable it through the applicable diagnostic configuration or run a suite for which it is enabled. |
The run is interrupted. |
|
The workload did not complete. |