gemmcheck3: self-checking rocBLAS GEMM test (RX 7900 XTX corruption) A developer released gemmcheck3, a self-checking rocBLAS GEMM stress test for AMD GPUs targeting RDNA3/gfx11 hardware such as the RX 7900 XTX. The tool runs five rocblas_gemm_ex calls in LLM layer shapes (fp16-in/fp32-out and int8-in/int32-out) back to back on a single stream, comparing each output bit-for-bit against a startup reference and recording launch number, word index, and values on any mismatch. It supports fault injection for self-testing and exits with distinct codes for clean runs, mismatches, HIP/rocBLAS errors, and failed determinism checks. | | // gemmcheck3: a self-checking rocBLAS GEMM stress test for AMD GPUs RDNA3 / gfx11 tested . | | | // | | | // Five rocblas gemm ex calls in LLM layer shapes fp16 in / fp32 out, and int8 in / int32 out , random inputs, | | | // atomics disabled, launched back to back on one stream. A reference is computed once at startup and a | | | // determinism check must pass. After every GEMM a compare kernel checks the output bit for bit; on a mismatch it | | | // records the launch number, word index, the value read, the reference, and both re-read through an atomic | | | // served by L2 . Every few seconds the host prints a status line and describes any bad launch: GEMM | | | // coordinates rows, columns , checker coordinates, magnitudes, and whether the re-read agrees. | | | // | | | // On a healthy GPU with a deterministic library, a mismatch should never happen. | | | // | | | // hipcc -O2 --offload-arch=gfx1100 gemmcheck3.hip -o gemmcheck3 -L$ROCM PATH/lib -lrocblas -Wl,-rpath,$ROCM PATH/lib | | | // GEMMCHECK STOP=1 ./gemmcheck3 600 5 run up to 600 s, report every 5 s, stop at the first mismatch | | | // GEMMCHECK INJECT=7 ./gemmcheck3 10 5 self-test: plants a known 64x16 fault at launch 7 exit 1 | | | // GEMMCHECK GRID=512,128 ./gemmcheck3 ... checker geometry blocks,threads , default 1024,256 | | | // GEMMCHECK TRACE=1 AMD LOG LEVEL=3 ./gemmcheck3 1 1 one launch per case between markers, then exit | | | // Exit codes: 0 clean, 1 mismatches found, 2 HIP/rocBLAS error, 3 determinism check failed. | | | include