Skip to content

Instantly share code, notes, and snippets.

@benvanik
benvanik / README.md
Last active July 19, 2026 18:43
rocJITsu #8831 positive gfx1250 cluster dogfood: Loom FP8/BF16 WMMA kernel, HSACO, disassembly, and validation

rocJITsu #8831: real ID4 gfx1250 cluster dogfood

This is a positive interoperability report for ROCm/rocm-systems#8831. Against the exact PR head, source-built rocJITsu successfully executed Loom's production clustered linear kernel at an actual ID4 short-QKV model shape:

BF16[128,4608] x scaled-FP8-E4M3[4608,13824] -> BF16[128,13824]
@benvanik
benvanik / ISSUE.md
Last active July 19, 2026 16:48
rocJITsu waitcheck: disjoint gfx1250 LDS ASYNCCNT false positive

rocJITsu waitcheck reports disjoint gfx1250 LDS ranges as an ASYNCCNT hazard

rj_waitcheck reports the same missing-s_wait_asynccnt diagnostic for a provably disjoint LDS store and an actually overlapping control.

Standalone reproducer: https://gist.github.com/benvanik/26f51dfc83a608dc271a596fbc279a3d.

The standalone reproducer builds two eight-instruction gfx1250 code objects with the public ROCm SDK. Both set the LDS base to constant zero, issue

@benvanik
benvanik / gfx1250-cluster-identity-review-followup.patch
Created July 19, 2026 15:22
Prototype review follow-up for ROCm/rocm-systems#8826; architectural and test handoff for upstream generator ownership
diff --git a/emulation/rocjitsu/lib/python/amdisa/codegen/_generator.py b/emulation/rocjitsu/lib/python/amdisa/codegen/_generator.py
index e32a7d219b..54c19529a0 100644
--- a/emulation/rocjitsu/lib/python/amdisa/codegen/_generator.py
+++ b/emulation/rocjitsu/lib/python/amdisa/codegen/_generator.py
@@ -2774,6 +2774,8 @@ class CodeGenerator:
constexprs.append(f'constexpr uint32_t HW_REG_IB_STS2 = {ib_sts2_id};')
constexprs.extend(
[
+ 'constexpr uint32_t HW_REG_IB_STS2_CLUSTER_ID_SHIFT = 6;',
+ 'constexpr uint32_t HW_REG_IB_STS2_CLUSTER_ID_MASK = 0xFu;',
@benvanik
benvanik / ISSUE.md
Created July 19, 2026 12:00
rocJITsu gfx1250 cluster async-to-LDS INST_OFFSET reproducer and fix

cluster_load_async_to_lds_* applies its signed INST_OFFSET byte offset to both the global source and LDS destination. rocJITsu currently applies it only to the global side, so a valid nonzero-offset gfx1250 cluster load places the right payload in the wrong LDS locations.

The attached standalone probe uses only a matching ROCm nightly SDK. It compiles a (2,1,1) HIP cluster, verifies that LLVM emitted cluster_load_async_to_lds_b32 ... offset:4 scale_offset, submits the public extended AQL packet through HSA, and checks both participant-owned LDS results. The current nightly produces 1/32 correct lanes in each workgroup. The attached

@benvanik
benvanik / README.md
Last active July 18, 2026 19:32
rocJITsu recycled doorbell loses or falsely completes a replacement queue first dispatch
@benvanik
benvanik / README.md
Last active July 18, 2026 20:13
rocJITsu local VM startup and process-teardown lifetime reproducer

rocJITsu has no safe ownership boundary for its local VM engine

Upstream tracking: ROCm/rocm-systems#8817.

Environment

  • ROCm SDK and rocJITsu nightly: 7.15.0a20260718.
  • Physical control: Linux /dev/kfd on gfx1100.
  • rocJITsu configuration: gfx950_cdna4_kmd.json.
  • Source confirmation: rocm-systems PR #8672 at current head
@benvanik
benvanik / README.md
Last active July 18, 2026 19:57
rocJITsu standalone decoder instruction ownership leak reproducer

Successful standalone decodes leak every returned instruction

Environment

  • ROCm SDK and rocJITsu nightly: 7.15.0a20260718
  • Decoder architecture: ROCJITSU_CODE_ARCH_CDNA3
  • Instruction: s_endpgm (0xBF810000)
  • Compiler: SDK amdclang with -fsanitize=address
  • GPU required: no
@benvanik
benvanik / README.md
Last active July 18, 2026 19:39
rocJITsu gfx1250 DPP high-VGPR source selector reproducer
@benvanik
benvanik / shared_memory_tile_benchmark_result.json
Created June 16, 2026 21:21
Loom benchmark compile_report example: shared_memory_tile_reverse
{
"benchmark": "bench_shared_memory_tile_reverse",
"case": "case_shared_memory_tile_reverse",
"status": "ok",
"sample_compilation": "once",
"sample_ordinal": 0,
"compile_report_path": "bundle/compile_reports/shared_memory_tile_reverse_compile_report.json",
"artifact_manifest_path": "bundle/artifact_manifests/shared_memory_tile_reverse_artifact_manifest.json",
"target_artifact_path": "bundle/target_artifacts/shared_memory_tile_reverse_target.elf",
"target_listing_path": "bundle/target_listings/shared_memory_tile_reverse_target_listing.amdgpu-assembly",
@benvanik
benvanik / README.md
Created June 13, 2026 00:22
External GPU AddressSanitizer runtime LLVM reproducers

External GPU AddressSanitizer Runtime Reproducers

This gist contains minimal reproducers for using clang/LLVM's GPU AddressSanitizer instrumentation with an external device runtime.

The model under test is:

  • compiler-inserted ASAN memory access checks in GPU device code
  • stable __asan_* hook calls emitted by clang/LLVM
  • a caller-provided device bitcode library defining those hooks