Reproduce
aorta sweep run --recipe recipes/sanitizers/daily-consan-gemm.yamlSet ROCJITSU_PREBUILT (unpacked rocjitsu bundle supplying rj_waitcheck and the ConSan hook) before running. aorta sets HSA_TOOLS_LIB, HSA_TOOLS_DISABLE_REGISTER, RJ_CONSAN_MODE, RJ_CONSAN_POLICY for you from the recipe's policy block.
Rebuild the fixtures
fixtures/isa/consan_gemm_f32.hsaco
one representative heavy f32 SS GEMM code object
export PATH="$(python -c "from aorta.instrumentation.rocm_paths import resolve_rocm_roots; print(resolve_rocm_roots().llvm_bin_dir)"):${PATH}"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$(python -c "import os; from aorta.instrumentation.rocm_paths import resolve_rocm_roots as r; x = r(); print(os.pathsep.join(dict.fromkeys([str(x.core_lib_dir), str(x.lib_dir)])))")"
mkdir -p recipes/sanitizers/fixtures/isa
python scripts/sanitizers/prepare_gemm_isa.py --csv recipes/sanitizers/fixtures/gemm_shapes_unique.csv --out recipes/sanitizers/fixtures/isa --top-n 0 --consan-object recipes/sanitizers/fixtures/isa/consan_gemm_f32.hsacoExtracted from the shipped Tensile libraries, never compiled from a .hip source.
fixtures/bin/consan_gemm_load
a host repro binary built from fixtures/kernels/consan_load.hip
export PATH="$(python -c "from aorta.instrumentation.rocm_paths import resolve_rocm_roots; print(resolve_rocm_roots().llvm_bin_dir)"):${PATH}"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$(python -c "import os; from aorta.instrumentation.rocm_paths import resolve_rocm_roots as r; x = r(); print(os.pathsep.join(dict.fromkeys([str(x.core_lib_dir), str(x.lib_dir)])))")"
mkdir -p recipes/sanitizers/fixtures/bin
hipcc --offload-arch=gfx950 -DOBJECT="\"$(pwd)/recipes/sanitizers/fixtures/isa/consan_gemm_f32.hsaco\"" recipes/sanitizers/fixtures/kernels/consan_load.hip -o recipes/sanitizers/fixtures/bin/consan_gemm_loadThe -DOBJECT define is required: it is how the binary learns which code object to load.
The exact invocations the nightly used are in .github/workflows/sanitizers-nightly.yml.
Artifacts not published
| Path | SHA-256 |
|---|---|
| fixtures/isa/consan_gemm_f32.hsaco | 57c5d8efa448315ddc5f49170757ebeec1eb397468676ff158d19c71572b1c55 |
| fixtures/bin/consan_gemm_load | 6e4ff7c53fcf007e3c6604ec6093510cbff56ae83337fbb1a6057aa245be39ad |
Recorded digests
| Key | Value |
|---|---|
| code_object:consan_gemm_f32.hsaco | 57c5d8efa448315ddc5f49170757ebeec1eb397468676ff158d19c71572b1c55 |
| command | /workspace/aorta/recipes/sanitizers/fixtures/bin/consan_gemm_load |
| command_sha256 | 6e4ff7c53fcf007e3c6604ec6093510cbff56ae83337fbb1a6057aa245be39ad |
| hook | /workspace/aorta/.sanitizer-nightly/rocjitsu-prebuilt/lib/librocjitsu_dbi_hooks.so |
| hook_sha256 | 218f0ad3835f7c5a4c74287a68168893e3488f3c8f23e72e372a891f1b20e0fc |
| selected_identity_sha256 | acd50ca2bb450f4fb8144de0b24d11a502038583bf296d9e36f32091c5fbe079 |
| selected_kernel | gemm_f32_ss |
Every file published for this case. Logs are gzipped. It is not the whole recipe: 2 required inputs are CI-built and excluded by design, listed under artifacts not published with their SHA-256s.
| File | Size |
|---|---|
| REPRODUCE.md | 4.5 KB |
| consan/consan.log.gz | 1.8 KB |
| env.json | 4.5 KB |
| inputs/fixtures/gemm_shapes_unique.csv | 4.8 KB |
| inputs/fixtures/kernels/consan_load.hip | 943 B |
| recipe.yaml | 8.4 KB |
| sanitizer_report.json | 2.4 KB |