chipintegrity.org GitHub
chipintegrity.org / chips / nvidia-h100-80gb-hbm3
CHIP RESULT, LAST TESTED 10 OCTOBER 2026

NVIDIA H100 80GB HBM3

Across 2,515 compute runs, every output element stayed inside its proven error bound and every repeat matched the first run bit for bit. All 16,844,324,864 memory words read back correctly. The self-tests caught 351 of the 351 faults planted to prove the checks work.

Every number on this page is read from the result files listed at the bottom, written in the OCP Test and Validation format. New to this? Start with what a silent error is and how a chip is tested here.

5
probes run on this chip
2,515
compute runs checked element by element
16.8 billion
memory words written and read back
0
silent faults found
351 of 351
planted faults caught in self-tests
HOW CLOSE IT CAME

Error budget used

Floating-point answers are never exact, so each check allows a rounding error and proves how large it can honestly be. The red line is that proven limit. A bar shows the largest error this chip produced, as a share of the limit, across every run. Anything past the line would be a wrong answer.

Softmax FP16
99.9% of bound
GELU FP16
99.2% of bound
GELU BF16
97.5% of bound
Layer norm BF16
94.3% of bound
Softmax BF16
93.6% of bound
BF16 data patterns
93.5% of bound
RoPE BF16
82.4% of bound
RoPE FP16
80.7% of bound
Layer norm FP16
71.8% of bound
FP16 data patterns
65.9% of bound
BF16 matrix multiply
65.7% of bound
FP16 matrix multiply
20.7% of bound
Attention BF16
18.9% of bound
GELU FP32
16.2% of bound
RoPE FP32
12.2% of bound
Attention FP16
11.2% of bound
FP32 data patterns
3.9% of bound
FP32 matrix multiply
0.5% of bound
Softmax FP32
0.5% of bound
Attention FP32
0.1% of bound
Layer norm FP32
under 0.1% of bound

Checked exactly, where any difference at all fails: FP8 matrix multiply, FP8 fast-accumulation matrix multiply, INT8 matrix multiply, FP8 data patterns, FP8 fast-accumulation data patterns, INT8 data patterns. Every one matched.

Bars close to the line at FP16 and BF16 are expected: there the limit is dominated by the single rounding of the output, so a correct chip has almost nothing to spare. A bar past the line is a failed run.

PROOF THE CHECKS WORK

Every planted fault was caught

A clean result is only worth something if the tester would have seen a fault. So next to every clean run, the self-test plants faults on purpose, including the patterns NVIDIA measured at gate level, and every one must be caught. How the self-test works.

Compute probe
90 of 90 caught
Transformer kernel probe
45 of 45 caught
Checksum probe
18 of 18 caught
Data pattern probe
168 of 168 caught
Memory probe
30 of 30 caught
Device memory swept
62.75 GiB of 79.18 GiB
PROBE 1

Compute probe

Matrix multiplies at several shapes and precisions. Every output element is checked against an exact or float64 reference under a proven rounding-error bound, and every run is compared bit for bit with the first run.

No silent faults.
900 runs across 18 steps. The self-test caught 90 of 90 planted faults.

Tool v0.3.2, PyTorch 2.8.0+cu128, 10 October 2026. Result file · Self-test file

Error counters: error counters quiet.

Show all 18 steps from the result file
Step in the result fileSizeWorst error / boundVerdict
gemm_fp32_1024x1024x102450 runs0.005no-silent-errors
gemm_fp16_1024x1024x102450 runs0.207no-silent-errors
gemm_bf16_1024x1024x102450 runs0.657no-silent-errors
gemm_int8_1024x1024x102450 runsexactno-silent-errors
gemm_fp8_1024x1024x102450 runsexactno-silent-errors
gemm_fp8fast_1024x1024x102450 runsexactno-silent-errors
gemm_fp32_4096x4096x409650 runs0.001no-silent-errors
gemm_fp16_4096x4096x409650 runs0.032no-silent-errors
gemm_bf16_4096x4096x409650 runs0.203no-silent-errors
gemm_int8_4096x4096x409650 runsexactno-silent-errors
gemm_fp8_4096x4096x409650 runsexactno-silent-errors
gemm_fp8fast_4096x4096x409650 runsexactno-silent-errors
gemm_fp32_32x4096x1100850 runsunder 0.001no-silent-errors
gemm_fp16_32x4096x1100850 runs0.031no-silent-errors
gemm_bf16_32x4096x1100850 runs0.200no-silent-errors
gemm_int8_32x4096x1100850 runsexactno-silent-errors
gemm_fp8_32x4096x1100850 runsexactno-silent-errors
gemm_fp8fast_32x4096x1100850 runsexactno-silent-errors
PROBE 3

Transformer kernel probe

Softmax, layer norm, GELU, rotary embeddings and fused attention, each checked against a float64 reference under its own proven bound and against the first run bit for bit.

No silent faults.
375 runs across 15 steps. The self-test caught 45 of 45 planted faults.

Tool v0.2.2, PyTorch 2.8.0+cu128, 10 October 2026. Result file · Self-test file

Error counters: error counters quiet.

Show all 15 steps from the result file
Step in the result fileSizeWorst error / boundVerdict
softmax_fp3225 runs0.005no-silent-errors
softmax_fp1625 runs0.999no-silent-errors
softmax_bf1625 runs0.936no-silent-errors
layernorm_fp3225 runsunder 0.001no-silent-errors
layernorm_fp1625 runs0.718no-silent-errors
layernorm_bf1625 runs0.943no-silent-errors
gelu_fp3225 runs0.162no-silent-errors
gelu_fp1625 runs0.992no-silent-errors
gelu_bf1625 runs0.975no-silent-errors
rope_fp3225 runs0.122no-silent-errors
rope_fp1625 runs0.807no-silent-errors
rope_bf1625 runs0.824no-silent-errors
attention_fp3225 runs0.001no-silent-errors
attention_fp1625 runs0.112no-silent-errors
attention_bf1625 runs0.189no-silent-errors
PROBE 6

Checksum probe

A matrix multiply protected by row and column checksums (Huang and Abraham) with proven thresholds, so a wrong element is located to its exact row and column.

No silent faults.
120 runs across 6 steps. The self-test caught 18 of 18 planted faults.

Tool v0.1.0, PyTorch 2.8.0+cu128, 10 October 2026. Result file · Self-test file

Error counters: error counters quiet.

Show all 6 steps from the result file
Step in the result fileSizeWorst error / boundVerdict
abft_fp32_1024x1024x102420 runsno-silent-errors
abft_fp16_1024x1024x102420 runsno-silent-errors
abft_bf16_1024x1024x102420 runsno-silent-errors
abft_fp32_32x4096x1100820 runsno-silent-errors
abft_fp16_32x4096x1100820 runsno-silent-errors
abft_bf16_32x4096x1100820 runsno-silent-errors
PROBE 9

Data pattern probe

Inputs built to reach particular bits (wide exponents, long mantissas, cancellation, alternating signs, sparse inputs, subnormals and values near the top of the range), fed through the same matrix multiply checks.

No silent faults.
1,120 runs across 56 steps. The self-test caught 168 of 168 planted faults.

Tool v0.1.2, PyTorch 2.8.0+cu128, 10 October 2026. Result file · Self-test file

Error counters: error counters quiet.

Show all 56 steps from the result file
Step in the result fileSizeWorst error / boundVerdict
gemm_fp32_wide_1024x1024x102420 runs0.014no-silent-errors
gemm_fp32_mantissa_1024x1024x102420 runsunder 0.001no-silent-errors
gemm_fp32_cancel_1024x1024x102420 runs0.003no-silent-errors
gemm_fp32_alternate_1024x1024x102420 runs0.039no-silent-errors
gemm_fp32_sparse_1024x1024x102420 runs0.004no-silent-errors
gemm_fp32_subnormal_1024x1024x102420 runs0.004no-silent-errors
gemm_fp32_near_max_1024x1024x102420 runs0.003no-silent-errors
gemm_fp16_wide_1024x1024x102420 runs0.513no-silent-errors
gemm_fp16_mantissa_1024x1024x102420 runs0.281no-silent-errors
gemm_fp16_cancel_1024x1024x102420 runsunder 0.001no-silent-errors
gemm_fp16_alternate_1024x1024x102420 runs0.618no-silent-errors
gemm_fp16_sparse_1024x1024x102420 runs0.659no-silent-errors
gemm_fp16_subnormal_1024x1024x102420 runs0.145no-silent-errors
gemm_fp16_near_max_1024x1024x102420 runs0.180no-silent-errors
gemm_bf16_wide_1024x1024x102420 runs0.934no-silent-errors
gemm_bf16_mantissa_1024x1024x102420 runs0.751no-silent-errors
gemm_bf16_cancel_1024x1024x102420 runsunder 0.001no-silent-errors
gemm_bf16_alternate_1024x1024x102420 runs0.863no-silent-errors
gemm_bf16_sparse_1024x1024x102420 runs0.935no-silent-errors
gemm_bf16_subnormal_1024x1024x102420 runs0.569no-silent-errors
gemm_bf16_near_max_1024x1024x102420 runs0.634no-silent-errors
gemm_int8_alternate_1024x1024x102420 runsexactno-silent-errors
gemm_int8_sparse_1024x1024x102420 runsexactno-silent-errors
gemm_int8_extremes_1024x1024x102420 runsexactno-silent-errors
gemm_fp8_alternate_1024x1024x102420 runsexactno-silent-errors
gemm_fp8_sparse_1024x1024x102420 runsexactno-silent-errors
gemm_fp8fast_alternate_1024x1024x102420 runsexactno-silent-errors
gemm_fp8fast_sparse_1024x1024x102420 runsexactno-silent-errors
gemm_fp32_wide_32x4096x1100820 runs0.002no-silent-errors
gemm_fp32_mantissa_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp32_cancel_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp32_alternate_32x4096x1100820 runs0.006no-silent-errors
gemm_fp32_sparse_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp32_subnormal_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp32_near_max_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp16_wide_32x4096x1100820 runs0.126no-silent-errors
gemm_fp16_mantissa_32x4096x1100820 runs0.049no-silent-errors
gemm_fp16_cancel_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_fp16_alternate_32x4096x1100820 runs0.318no-silent-errors
gemm_fp16_sparse_32x4096x1100820 runs0.260no-silent-errors
gemm_fp16_subnormal_32x4096x1100820 runs0.021no-silent-errors
gemm_fp16_near_max_32x4096x1100820 runs0.027no-silent-errors
gemm_bf16_wide_32x4096x1100820 runs0.764no-silent-errors
gemm_bf16_mantissa_32x4096x1100820 runs0.286no-silent-errors
gemm_bf16_cancel_32x4096x1100820 runsunder 0.001no-silent-errors
gemm_bf16_alternate_32x4096x1100820 runs0.722no-silent-errors
gemm_bf16_sparse_32x4096x1100820 runs0.730no-silent-errors
gemm_bf16_subnormal_32x4096x1100820 runs0.167no-silent-errors
gemm_bf16_near_max_32x4096x1100820 runs0.181no-silent-errors
gemm_int8_alternate_32x4096x1100820 runsexactno-silent-errors
gemm_int8_sparse_32x4096x1100820 runsexactno-silent-errors
gemm_int8_extremes_32x4096x1100820 runsexactno-silent-errors
gemm_fp8_alternate_32x4096x1100820 runsexactno-silent-errors
gemm_fp8_sparse_32x4096x1100820 runsexactno-silent-errors
gemm_fp8fast_alternate_32x4096x1100820 runsexactno-silent-errors
gemm_fp8fast_sparse_32x4096x1100820 runsexactno-silent-errors
PROBE 2

Memory probe

Most of the device memory written with six patterns, left to dwell, and read back word by word.

No silent faults.
16,844,324,864 memory words read back. The self-test caught 30 of 30 planted faults.

Tool v0.1.1, 10 October 2026. Result file · Self-test file

Error counters: error counters quiet.

Show all 1 steps from the result file
Step in the result fileSizeWorst error / boundVerdict
memory_sweep_pass162.75 GiBno-memory-errors
EVIDENCE

Setup and files

The chip

Name, as the driver reports it
NVIDIA H100 80GB HBM3
Device memory
79.18 GiB
Error counters
error counters quiet

The software

PyTorch
2.8.0+cu128
Probe versions
Compute probe v0.3.2, Transformer kernel probe v0.2.2, Checksum probe v0.1.0, Data pattern probe v0.1.2, Memory probe v0.1.1

The test

Dates tested
10 October 2026
Result files
10 files in the OCP Test and Validation format

Result files

READ BEFORE RELYING ON IT

What this result shows

These numbers describe one unit of this chip, tested on the dates above. A clean result means no silent error showed up in these runs under these checks. It cannot rule out a fault that appears under other workloads, temperatures or ages, and another unit of the same model can behave differently. What a PASS means explains the limits in full.

TAKE PART

Run it on your chip

The same tests on your own hardware, in one command. Every result file it writes can be published here as a new row.

pip install ai-chip-integrity
chip-integrity run --name nvidia-h100-80gb-hbm3

Cite the tool as: Yasha Khandelwal, ai-chip-integrity, version 0.4.2, 2026, https://doi.org/10.5281/zenodo.23393790

ALL CHIPS

Other chips measured