Skip to content

Commit ccded16

Browse files
committed
Add ROCm release fuzzing wrapper
1 parent 679cfc5 commit ccded16

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

‎amdgpu/README.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,17 @@ Scaling from 64 to 256 workers did not reach 1k exec/s; CPU remained mostly
5454
idle, so the current bottleneck appears to be HIP/module execution rather than
5555
host compilation.
5656

57+
For ROCm 7.2.3 release fuzzing, use the release wrapper:
58+
59+
```bash
60+
scripts/run_rocm_7_2_3_release_fuzzer.sh -max_total_time=900 -max_len=1024 -rss_limit_mb=8192 -use_value_profile=1
61+
```
62+
63+
That wrapper keeps the release-reproducing bugs suppressed (`m001`, `m013`, and
64+
`m017`), but explicitly re-enables the idioms that only failed on LLVM HEAD /
65+
ROCm HEAD in the checked matrix (`m002` through `m012`, plus `m014` through
66+
`m016`).
67+
5768
Candidate compiler crashes, runner failures, or output mismatches are saved
5869
under `findings/`. Generated corpora and findings are local artifacts and are
5970
ignored by git.
@@ -92,6 +103,7 @@ rediscovering the same issue.
92103
| `scripts/build_directed_fuzzer.sh` | Builds the C++ GPU differential libFuzzer target. |
93104
| `scripts/run_directed_fuzzer.sh` | Runs the C++ directed fuzzer on one GPU. |
94105
| `scripts/run_directed_multigpu_fuzzer.sh` | Runs one or more C++ directed fuzzer processes per selected GPU. |
106+
| `scripts/run_rocm_7_2_3_release_fuzzer.sh` | Runs the C++ directed fuzzer with the ROCm 7.2.3 release suppression policy. |
95107
| `fuzzer/` | LLVM API plus HIP differential libFuzzer target. |
96108
| `runner/hip_module_runner.cpp` | HIP module loader used to execute generated HSACO files. |
97109
| `known-miscompiles/` | Reduced or standalone reproducers for confirmed findings. |
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
# Run the GPU differential fuzzer against ROCm 7.2.3 release semantics.
3+
#
4+
# This mode re-enables known idioms that reproduce only on LLVM HEAD / ROCm HEAD,
5+
# while keeping ROCm 7.2.3 release failures suppressed.
6+
7+
set -euo pipefail
8+
9+
cd "$(dirname "$0")/.."
10+
ROOT="$(pwd)"
11+
12+
FUZZER_BIN="${FUZZER_BIN:-$ROOT/build/fuzzer-rocm-7.2.3-cov-release/llvm_amdgpu_diff_fuzzer}"
13+
CORPUS_ROOT="${CORPUS_ROOT:-$ROOT/corpus/rocm-7.2.3-cov-release-fuzz}"
14+
ARTIFACT_ROOT="${ARTIFACT_ROOT:-$ROOT/findings/rocm-7.2.3-cov-release-fuzz-artifacts}"
15+
FUZZX_FINDINGS_DIR="${FUZZX_FINDINGS_DIR:-$ROOT/findings/rocm-7.2.3-cov-release-fuzz}"
16+
LOG_DIR="${LOG_DIR:-$ROOT/build/rocm-7.2.3-cov-release-fuzz-logs/$(date +%Y%m%d-%H%M%S)}"
17+
GPUS="${GPUS:-0 1 2 3 4 5 6 7}"
18+
WORKERS_PER_GPU="${WORKERS_PER_GPU:-32}"
19+
20+
# These known cases are HEAD-only for the checked toolchain matrix and should
21+
# stay enabled while fuzzing the ROCm release.
22+
export FUZZX_ALLOW_M002_I8_CLEAR_XOR=1
23+
export FUZZX_ALLOW_M003_SHL3_ADD_CHAIN=1
24+
export FUZZX_ALLOW_M004_VECTOR_IDENTITY_XOR=1
25+
export FUZZX_ALLOW_M005_SHL_ADD_CHAIN=1
26+
export FUZZX_ALLOW_M006_I8_CLEAR_XOR=1
27+
export FUZZX_ALLOW_M007_VECTOR_IDENTITY_XOR=1
28+
export FUZZX_ALLOW_M008_I8_CLEAR_XOR=1
29+
export FUZZX_ALLOW_M009_I16_CLEAR_XOR=1
30+
export FUZZX_ALLOW_M010_I16_SEXT_CLEAR_XOR=1
31+
export FUZZX_ALLOW_M011_I8_SEXT_CLEAR_XOR=1
32+
export FUZZX_ALLOW_M012_ADD_SHL_LADDER=1
33+
export FUZZX_ALLOW_M014_SHL_ADD_CTPOP=1
34+
export FUZZX_ALLOW_M015_SCALAR_FSHL_ZERO=1
35+
export FUZZX_ALLOW_M016_SCALAR_FSHL=1
36+
37+
export FUZZER_BIN CORPUS_ROOT ARTIFACT_ROOT FUZZX_FINDINGS_DIR LOG_DIR GPUS
38+
export WORKERS_PER_GPU
39+
40+
exec "$ROOT/scripts/run_directed_multigpu_fuzzer.sh" "$@"

0 commit comments

Comments
 (0)