Skip to content

fix(jit): widen kernel IDs and preserve full cache hashes - #125

Merged
jinzhen-lin merged 1 commit into
mainfrom
fix/jit-kernel-hash
Oct 9, 2026
Merged

jinzhen-lin merged 1 commit into
mainfrom
fix/jit-kernel-hash

Conversation

@jinzhen-lin

Copy link
Copy Markdown
Collaborator

Kernel registration can fail when distinct cubin paths share a CRC32 and the kernels have the same symbol name, as seen in Buildkite build 61. Compute a shared nonnegative 63-bit registration ID from CRC-64/ECMA-182 over the full cubin path, a null separator, and the kernel name. Apply this to both GEMM and process-input registration, retain collision checks, and initialize the lookup table safely under concurrent calls.

Return all 32 hexadecimal MD5 characters from hash_to_hex instead of truncating to 16. This changes cache keys, so affected JIT and native artifacts will be rebuilt.

Validation:

  • python -m pytest tests/test_jit_infrastructure.py tests/kernels/process_input/test_scale.py -q — 107 passed on RTX PRO 6000 Blackwell GPUs.
  • CRC64 standard vectors, concurrent initialization, field separation, and a known CRC32 path collision checked with a temporary standalone C++ program.
  • Full MD5 known vectors, Ruff, formatting of changed C++ code, and git diff --check.

Signed-off-by: jinzhen.ljz <jinzhen.ljz@antgroup.com>
Co-authored-by: Codex (GPT-6) <codex@openai.com>
@jinzhen-lin
jinzhen-lin requested a review from mgoin as a code owner October 9, 2026 02:41
@jinzhen-lin
jinzhen-lin merged commit f40f6ec into main Oct 9, 2026
4 checks passed
@jinzhen-lin
jinzhen-lin deleted the fix/jit-kernel-hash branch October 9, 2026 02:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant