Skip to content

Add missing template disambiguators - #3433

Open
Yinwei-Zhang wants to merge 1 commit into
NVIDIA:mainfrom
Yinwei-Zhang:agent/add-missing-template-disambiguators
Open

Add missing template disambiguators#3433
Yinwei-Zhang wants to merge 1 commit into
NVIDIA:mainfrom
Yinwei-Zhang:agent/add-missing-template-disambiguators

Conversation

@Yinwei-Zhang

Copy link
Copy Markdown

Summary

Add missing template disambiguators to four dependent member-template calls in SM100 and SM103 GEMM kernels.

Root cause

CollectiveMainloop and CollectiveEpilogue are aliases of class template parameters, so member-template calls through their instances are dependent names. Standard C++ requires the template disambiguator in these expressions.

NVCC accepts the existing non-empty calls through permissive parsing, but stricter C++ frontends can reject them because < is not unambiguously parsed as the beginning of a template argument list.

Changes

  • Disambiguate CollectiveMainloop::load_init and CollectiveMainloop::tensormaps_init calls in the SM100 array/grouped kernel.
  • Disambiguate CollectiveEpilogue::load calls in the SM103 block-scaled GEMM and array/grouped GEMM kernels.

This is a syntax-only portability fix with no intended runtime or code-generation change.

Validation

  • git diff --check
  • Compiled 75_blackwell_grouped_gemm for sm_100a with CUDA 13.2.
  • Built CMake target 89_sm103_fp4_ultra_gemm with CUTLASS_NVCC_ARCHS=103a.
  • Built CMake target 90_sm103_fp4_ultra_grouped_gemm with CUTLASS_NVCC_ARCHS=103a.

@Yinwei-Zhang
Yinwei-Zhang marked this pull request as ready for review August 5, 2026 01:56
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