mirror of
https://github.com/deepseek-ai/DeepGEMM.git
synced 2026-11-05 00:47:26 +00:00
[GH-ISSUE #359] [BUG] NVRTC build fails for sm90_tf32_hc_prenorm_gemm — cudaGridDependencySynchronize undefined (PDL intrinsic not available under NVRTC) #173
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepGEMM#173
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @zhehli688 on GitHub (Jun 12, 2026).
Original GitHub issue: https://github.com/deepseek-ai/DeepGEMM/issues/359
Describe the bug
When the NVRTC JIT backend is enabled (
DG_JIT_USE_NVRTC=1), the HyperConnection prenorm GEMM kernel fails to compile because it calls the PDL (Programmatic Dependent Launch) device intrinsiccudaGridDependencySynchronize(), which NVRTC does not expose. The kernel uses it unconditionally and does not include the device-runtime header, so it only compiles under NVCC (which implicitly injects the CUDA device runtime).NVRTC compilation aborts with:
which then surfaces to the caller as an invalid cubin:
Offending code
deep_gemm/include/deep_gemm/impls/sm90_tf32_hc_prenorm_gemm.cuh(~line 120):There is no
#if !defined(__CUDACC_RTC__)guard, and the kernel does not#include <cuda_device_runtime_api.h>. PDL device intrinsics (cudaGridDependencySynchronize,cudaTriggerProgrammaticLaunchCompletion) are provided by NVCC's implicit device-runtime injection, which NVRTC does not perform. (The same pattern likely affectssm100_tf32_hc_prenorm_gemm.cuh.)Environment
891d57b)DG_JIT_USE_NVRTC=1)Stacktrace