[PR #376] Fix NVRTC compilation for HyperConnection kernels #398

Open
opened 2026-10-26 21:17:15 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/deepseek-ai/DeepGEMM/pull/376
Author: @nya-a-cat
Created: 7/11/2026
Status: 🔄 Open

Base: main ← Head: agent/fix-nvrtc-hc-pdl-header


📝 Commits (1)

  • 7ac7449 fix NVRTC HyperConnection PDL declaration

📊 Changes

2 files changed (+4 additions, -0 deletions)

View changed files

📝 deep_gemm/include/deep_gemm/impls/sm100_tf32_hc_prenorm_gemm.cuh (+2 -0)
📝 deep_gemm/include/deep_gemm/impls/sm90_tf32_hc_prenorm_gemm.cuh (+2 -0)

📄 Description

Summary

  • Include <cuda_device_runtime_api.h> in the SM90 and SM100 HyperConnection pre-norm GEMM kernels.
  • Make the cudaGridDependencySynchronize() declaration available to the NVRTC compilation path.

Root cause

Both HyperConnection kernels call the Programmatic Dependent Launch synchronization intrinsic. With DG_JIT_USE_NVRTC=1, the current include chain does not expose its device-runtime declaration, so NVRTC fails with:

identifier "cudaGridDependencySynchronize" is undefined

NVCC provides the declaration implicitly in this path, which is why the failure is NVRTC-specific.

Impact

This restores NVRTC compilation for both SM90 and SM100 HyperConnection kernels. It does not change kernel logic, synchronization behavior, or launch configuration.

Validation

  • CUDA 12.9.1 NVRTC compile-only regression:
    • Before the fix: SM90 compilation fails with the undefined identifier above.
    • After the fix: the SM90 and SM100 header instantiations compile successfully.
  • git diff --check origin/main...HEAD

GPU runtime validation was not performed because the Actions runner did not have an NVIDIA GPU.

Fixes #359


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/deepseek-ai/DeepGEMM/pull/376 **Author:** [@nya-a-cat](https://github.com/nya-a-cat) **Created:** 7/11/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `agent/fix-nvrtc-hc-pdl-header` --- ### 📝 Commits (1) - [`7ac7449`](https://github.com/deepseek-ai/DeepGEMM/commit/7ac7449d6058e77ee04aad09066075cdb076b9c0) fix NVRTC HyperConnection PDL declaration ### 📊 Changes **2 files changed** (+4 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `deep_gemm/include/deep_gemm/impls/sm100_tf32_hc_prenorm_gemm.cuh` (+2 -0) 📝 `deep_gemm/include/deep_gemm/impls/sm90_tf32_hc_prenorm_gemm.cuh` (+2 -0) </details> ### 📄 Description ## Summary - Include `<cuda_device_runtime_api.h>` in the SM90 and SM100 HyperConnection pre-norm GEMM kernels. - Make the `cudaGridDependencySynchronize()` declaration available to the NVRTC compilation path. ## Root cause Both HyperConnection kernels call the Programmatic Dependent Launch synchronization intrinsic. With `DG_JIT_USE_NVRTC=1`, the current include chain does not expose its device-runtime declaration, so NVRTC fails with: ```text identifier "cudaGridDependencySynchronize" is undefined ``` NVCC provides the declaration implicitly in this path, which is why the failure is NVRTC-specific. ## Impact This restores NVRTC compilation for both SM90 and SM100 HyperConnection kernels. It does not change kernel logic, synchronization behavior, or launch configuration. ## Validation - CUDA 12.9.1 NVRTC compile-only regression: - [Before the fix](https://github.com/nya-a-cat/DeepGEMM/actions/runs/29105589876): SM90 compilation fails with the undefined identifier above. - [After the fix](https://github.com/nya-a-cat/DeepGEMM/actions/runs/29108998119): the SM90 and SM100 header instantiations compile successfully. - `git diff --check origin/main...HEAD` GPU runtime validation was not performed because the Actions runner did not have an NVIDIA GPU. Fixes #359 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepGEMM#398
No description provided.