From e6233cbac5d7c7a865c19c91cd684ceece19513c Mon Sep 17 00:00:00 2001 From: Haicheng Wu <57973641+hwu36@users.noreply.github.com> Date: Thu, 9 Jul 2026 14:44:20 -0400 Subject: [PATCH] update changelog.md (#3375) * update changelog.md * more changes --- CHANGELOG.md | 52 ++++++++++++++++++++++++++++++++++++++++++---------- README.md | 28 +++++++++++++++------------- 2 files changed, 57 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6446475b4..d0b798b9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,28 +4,30 @@ ## [4.6.0](https://github.com/NVIDIA/cutlass/releases/tag/v4.6.0) (2026-07-01) +* Release [documentation](https://docs.nvidia.com/cutlass/latest/media/docs/cpp/gemm_performance_measurement_methodology_guidelines.md) that explains how to accurately profiling GEMM performance. + ### CuTe DSL * New features - New fine-grained compilation API: cute.compile_to that gives control over the what stage the compiler outputs. This feature allows customization of the path from compilation to runtime execution. cute.compile_to is considered experimental in 4.6. - Experimental Feature: Added the IKET (In-Kernel-Event-Tracing) profiler for instrumentation-based intra-kernel activities tracing. This enables fine-grained profiling and makes it easier to understand persistent, warp-specialized kernels' performance. This is a beta feature provided by CUTLASS Python until a NVIDIA DevTools product is released, there is no guarantee that this interface will remain stable! - - Distribute compiler binaries to accomany cute.compile_to allowing users to build customized compile-exececute pipelines outside of Python. Both static and shared compiler and executor/runtime libraries will be provided. Compiler binaries will be uploaded to GitHub with each release. - - Supported AoT cross-compilation for aarch64‑linux‑gnu - - Support for two launch attributes: launch completion events (cudaLaunchAttributeLaunchCompletionEvent), for recording an event once all thread blocks have begun executing, and launch programatic events (cudaLaunchAttributeProgrammaticEvent), for PDL event-based synchronization - - Supported auto calculating per-kernel shared memory carveout preference, or use new laucnch option `preferred_smem_carveout` to set manually. + - Distribute compiler binaries to accompany cute.compile_to allowing users to build customized compile-execute pipelines outside of Python. Both static and shared compiler and executor/runtime libraries will be provided. Compiler binaries will be uploaded to GitHub with each release. + - Supported AoT cross-compilation for aarch64-linux-gnu + - Support for two launch attributes: launch completion events (cudaLaunchAttributeLaunchCompletionEvent), for recording an event once all thread blocks have begun executing, and launch programmatic events (cudaLaunchAttributeProgrammaticEvent), for PDL event-based synchronization + - Supported auto calculating per-kernel shared memory carveout preference, or use new launch option `preferred_smem_carveout` to set manually. - Auto-deduced smem size for launching kernels - Launch config `smem` now defaults to `None` for auto-calculating kernel shared memory usage, which is recommended unless manual control is required. - Warnings will be raised when the manually set shared memory size is insufficient or exceeds the GPU maximum. - The default shared memory usage calculation aligns with CUDA C++ static shared memory behavior, i.e. summing all allocations additively. - An additional launch option `smem_merge_branch_allocs` is provided to merge shared memory allocations across mutually exclusive code branches, which is recommended for inlined mega-kernels to reduce total footprint. - - SASS dumping in DSL is now supported in a self-contained manner - no CUDA toolkit installation required to get nvdisasm + - SASS dumping in DSL is now supported in a self-contained manner - no CUDA toolkit installation required to get nvdisasm * Bug fixing and improvements - Add the missing elect_one in cute.copy for bulk copy. - - The elect_one required for async bulk copp was missing in cute.copy. It's now generated in cute.copy automatically. - - Nesting elect_one will cause funtionality issues. Please remove elect_one around cute.copy with async bulk copy. + - The elect_one required for async bulk copy was missing in cute.copy. It's now generated in cute.copy automatically. + - Nesting elect_one will cause functionality issues. Please remove elect_one around cute.copy with async bulk copy. - Elect_one around direct async bulk copy instruction should be kept as it bypasses the cute.copy layer and will not be affected by this fix. - Affected copy atoms are CopyBulkG2SOp, CopyBulkG2SMulticastOp, CopyBulkS2GOp, CopyBulkS2GByteMaskOp, and CopyBulkS2SOp. - - Example of changes to avoid nesting elect_ones could be found here: https://github.com/Dao-AILab/quack/pull/164 + - An Example showing changes to avoid nesting `elect_one` could be found in this [PR](https://github.com/Dao-AILab/quack/pull/164) - Improvements on linter support with more type ignores cleaned up - Improvements on tvm-ffi CUDA runtime error diagnostics - Improvements on dataclass support for TVM-FFI @@ -52,11 +54,11 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. - `pip install nvidia-cutlass-operators` to get started * [Operator API Overview](https://docs.nvidia.com/cutlass/latest/media/docs/operators/overview.html) - - See [currently supported kernels](https://docs.nvidia.com/cutlass/latest/master/media/docs/operators/overview.html#supported-and-upcoming-features) + - See [currently supported kernels](https://docs.nvidia.com/cutlass/latest/media/docs/operators/overview.html#supported-and-upcoming-features) * [Basic GEMM tutorial](https://docs.nvidia.com/cutlass/latest/media/docs/operators/tutorials/000_gemm.html) - More tutorials [here](https://docs.nvidia.com/cutlass/latest/media/docs/operators/tutorials/index.html) * [GitHub source](https://github.com/NVIDIA/cutlass/tree/main/operators) -* [API Reference](https://docs.nvidia.com/cutlass/latest/master/media/docs/operators/api_reference/index.html) +* [API Reference](https://docs.nvidia.com/cutlass/latest/media/docs/operators/api_reference/index.html) ### CUTLASS C++ * Add [example 113](https://github.com/NVIDIA/cutlass/tree/main/examples/113_hopper_gemm_activation_fusion) for Hopper GEMM with activation fusion. @@ -73,6 +75,12 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. * Various improvements and fixes from the community and CUTLASS team. Thanks to everyone who submitted PRs! * Optimal code generation with CUDA toolkit versions 13.3. +## [4.5.3](https://github.com/NVIDIA/cutlass/releases/tag/v4.5.3) (2026-07-03) + +### CuTe DSL +* Bug fixing and improvements + - Fixed a compilation time regression issue in 4.5.0. Compilation times now match those in the 4.4 and 4.6 branches. + ## [4.5.2](https://github.com/NVIDIA/cutlass/releases/tag/v4.5.2) (2026-05-22) ### CuTe DSL @@ -169,6 +177,11 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. * Various improvements and fixes from the community and CUTLASS team. Thanks to everyone who submitted PRs! * Optimal code generation with CUDA toolkit versions 13.2. +## [4.4.3](https://github.com/NVIDIA/cutlass/releases/tag/v4.4.3) (2026-06-15) + +### CUTLASS C++ +* Make [version.h](https://github.com/NVIDIA/cutlass/blob/release/4.4/include/cutlass/version.h) NVRTC JIT compilation compatible. + ## [4.4.2](https://github.com/NVIDIA/cutlass/releases/tag/v4.4.2) (2026-03-13) ### CuTe DSL @@ -303,6 +316,13 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. * Various improvements and fixes from the community and CUTLASS team. Thanks to everyone who submitted PRs! * Optimal code generation with CUDA toolkit versions 13.1. +## [4.3.6](https://github.com/NVIDIA/cutlass/releases/tag/v4.3.6) (2026-06-17) + +### CUTLASS C++ +* Make [version.h](https://github.com/NVIDIA/cutlass/blob/release/4.3/include/cutlass/version.h) NVRTC JIT compilation compatible. +* Allow linking large cutlass library on 64bit platform. +* Fix alignment-related miscalculation for pipeline stages of Blackwell blockscaled GEMM. + ## [4.3.5](https://github.com/NVIDIA/cutlass/releases/tag/v4.3.5) (2026-01-09) ### CuTe DSL @@ -329,6 +349,8 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. * Work around a driver TMA descriptor related bug which will cause occasional errors on Blackwell when the tensor's backing memory allocation is less than 128KB and it is not a dense non-overlapping tensor. ## [4.3.3](https://github.com/NVIDIA/cutlass/releases/tag/v4.3.3) (2025-12-12) + +### CuTe DSL * New features - Supported namedtuple and kwargs for JIT function arguments in tvm-ffi - Supported variadic tuples for JIT function argument in tvm-ffi @@ -338,6 +360,8 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. - Clearer error message for the case of runtime error cudaErrorInsufficientDriver ## [4.3.2](https://github.com/NVIDIA/cutlass/releases/tag/v4.3.2) (2025-12-05) + +### CuTe DSL * New features - New env var `CUTE_DSL_CACHE_DIR` to specify the path for dumping caches @@ -453,6 +477,14 @@ to discover CUTLASS Python DSL kernels & integrate them in your code. * Various improvements and fixes from the community and CUTLASS team. Thanks to everyone who submitted PRs! * Optimal code generation with CUDA toolkit versions 13.0U1. +## [4.2.2](https://github.com/NVIDIA/cutlass/releases/tag/v4.2.2) (2026-06-20) + +### CUTLASS C++ +* Make [version.h](https://github.com/NVIDIA/cutlass/blob/release/4.2/include/cutlass/version.h) NVRTC JIT compilation compatible. +* Allow linking large cutlass library on 64bit platform. +* Fix alignment-related miscalculation for pipeline stages of Blackwell blockscaled GEMM. +* Fix for blockwise group gemm nosmem epilogues and no sfd with nosmem group gemm epilogues. + ## [4.2.1](https://github.com/NVIDIA/cutlass/releases/tag/v4.2.1) (2025-09-22) ### CuTe DSL diff --git a/README.md b/README.md index 65bbc3a00..6ea198c29 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # CUTLASS 4.6.0 -_CUTLASS 4.6.0 - June 2026_ +_CUTLASS 4.6.0 - July 2026_ CUTLASS is a collection of abstractions for implementing high-performance matrix-matrix multiplication (GEMM) and related computations at all levels and scales within CUDA. It incorporates strategies for @@ -27,14 +27,14 @@ native support of such data types) across NVIDIA's Volta, Turing, Ampere, Ada, H To this rich ecosystem of C++ based kernel programming abstractions, CUTLASS 4 adds CUTLASS DSLs. These are Python native interfaces for writing high-performance CUDA kernels based on core CUTLASS and CuTe concepts without any performance compromises. This allows for a much smoother learning curve, orders of magnitude faster compile times, native integration with DL frameworks without writing glue code, and much more intuitive metaprogramming that does not require deep C++ expertise. -Overall we envision CUTLASS DSLs as a family of domain-specific languages (DSLs). With the release of 4.0, we are releasing the first of these in CuTe DSL. This is a low level programming model that is fully consistent with CuTe C++ abstractions — exposing core concepts such as layouts, tensors, hardware atoms, and full control over the hardware thread and data hierarchy. +Overall, we envision CUTLASS DSLs as a family of domain-specific languages (DSLs). With the release of 4.0, we released the first of these in CuTe DSL. This is a low-level programming model that is fully consistent with CuTe C++ abstractions - exposing core concepts such as layouts, tensors, hardware atoms, and full control over the hardware thread and data hierarchy. CuTe DSL demonstrates optimal matrix multiply and other linear algebra operations targeting the programmable, high-throughput _Tensor Cores_ implemented by NVIDIA's Ampere, Hopper, and Blackwell architectures. We believe it will become an indispensable tool for students, researchers, and performance -engineers alike — flattening the learning curve of GPU programming, rapidly prototyping kernel +engineers alike - flattening the learning curve of GPU programming, rapidly prototyping kernel designs, and bringing optimized solutions into production. CuTe DSL is currently in public beta and will graduate out of beta by end of summer 2026. @@ -45,28 +45,30 @@ To get started quickly - please refer : # What's New in CUTLASS 4.6 +* Release [documentation](https://docs.nvidia.com/cutlass/latest/media/docs/cpp/gemm_performance_measurement_methodology_guidelines.md) that explains how to accurately profiling GEMM performance. + ## CuTe DSL * New features - New fine-grained compilation API: cute.compile_to that gives control over the what stage the compiler outputs. This feature allows customization of the path from compilation to runtime execution. cute.compile_to is considered experimental in 4.6. - Experimental Feature: Added the IKET (In-Kernel-Event-Tracing) profiler for instrumentation-based intra-kernel activities tracing. This enables fine-grained profiling and makes it easier to understand persistent, warp-specialized kernels' performance. This is a beta feature provided by CUTLASS Python until a NVIDIA DevTools product is released, there is no guarantee that this interface will remain stable! - - Distribute compiler binaries to accomany cute.compile_to allowing users to build customized compile-exececute pipelines outside of Python. Both static and shared compiler and executor/runtime libraries will be provided. Compiler binaries will be uploaded to GitHub with each release. - - Supported AoT cross-compilation for aarch64?~@~Qlinux?~@~Qgnu - - Support for two launch attributes: launch completion events (cudaLaunchAttributeLaunchCompletionEvent), for recording an event once all thread blocks have begun executing, and launch programatic events (cudaLaunchAttributeProgrammaticEvent), for PDL event-based synchronization - - Supported auto calculating per-kernel shared memory carveout preference, or use new laucnch option `preferred_smem_carveout` to set manually. + - Distribute compiler binaries to accompany cute.compile_to allowing users to build customized compile-execute pipelines outside of Python. Both static and shared compiler and executor/runtime libraries will be provided. Compiler binaries will be uploaded to GitHub with each release. + - Supported AoT cross-compilation for aarch64-linux-gnu + - Support for two launch attributes: launch completion events (cudaLaunchAttributeLaunchCompletionEvent), for recording an event once all thread blocks have begun executing, and launch programmatic events (cudaLaunchAttributeProgrammaticEvent), for PDL event-based synchronization + - Supported auto calculating per-kernel shared memory carveout preference, or use new launch option `preferred_smem_carveout` to set manually. - Auto-deduced smem size for launching kernels - Launch config `smem` now defaults to `None` for auto-calculating kernel shared memory usage, which is recommended unless manual control is required. - Warnings will be raised when the manually set shared memory size is insufficient or exceeds the GPU maximum. - The default shared memory usage calculation aligns with CUDA C++ static shared memory behavior, i.e. summing all allocations additively. - An additional launch option `smem_merge_branch_allocs` is provided to merge shared memory allocations across mutually exclusive code branches, which is recommended for inlined mega-kernels to reduce total footprint. - - SASS dumping in DSL is now supported in a self-contained manner - no CUDA toolkit installation required to get nvdisasm + - SASS dumping in DSL is now supported in a self-contained manner - no CUDA toolkit installation required to get nvdisasm * Bug fixing and improvements - Add the missing elect_one in cute.copy for bulk copy. - - The elect_one required for async bulk copp was missing in cute.copy. It's now generated in cute.copy automatically. - - Nesting elect_one will cause funtionality issues. Please remove elect_one around cute.copy with async bulk copy. + - The elect_one required for async bulk copy was missing in cute.copy. It's now generated in cute.copy automatically. + - Nesting elect_one will cause functionality issues. Please remove elect_one around cute.copy with async bulk copy. - Elect_one around direct async bulk copy instruction should be kept as it bypasses the cute.copy layer and will not be affected by this fix. - Affected copy atoms are CopyBulkG2SOp, CopyBulkG2SMulticastOp, CopyBulkS2GOp, CopyBulkS2GByteMaskOp, and CopyBulkS2SOp. - - Example of changes to avoid nesting elect_ones could be found here: https://github.com/Dao-AILab/quack/pull/164 + - An Example showing changes to avoid nesting `elect_one` could be found in this [PR](https://github.com/Dao-AILab/quack/pull/164) - Improvements on linter support with more type ignores cleaned up - Improvements on tvm-ffi CUDA runtime error diagnostics - Improvements on dataclass support for TVM-FFI @@ -93,11 +95,11 @@ To get started quickly - please refer : to discover CUTLASS Python DSL kernels & integrate them in your code. - `pip install nvidia-cutlass-operators` to get started * [Operator API Overview](https://docs.nvidia.com/cutlass/latest/media/docs/operators/overview.html) - - See [currently supported kernels](https://docs.nvidia.com/cutlass/latest/master/media/docs/operators/overview.html#supported-and-upcoming-features) + - See [currently supported kernels](https://docs.nvidia.com/cutlass/latest/media/docs/operators/overview.html#supported-and-upcoming-features) * [Basic GEMM tutorial](https://docs.nvidia.com/cutlass/latest/media/docs/operators/tutorials/000_gemm.html) - More tutorials [here](https://docs.nvidia.com/cutlass/latest/media/docs/operators/tutorials/index.html) * [GitHub source](https://github.com/NVIDIA/cutlass/tree/main/operators) -* [API Reference](https://docs.nvidia.com/cutlass/latest/master/media/docs/operators/api_reference/index.html) +* [API Reference](https://docs.nvidia.com/cutlass/latest/media/docs/operators/api_reference/index.html) ## CUTLASS C++ * Add [example 113](https://github.com/NVIDIA/cutlass/tree/main/examples/113_hopper_gemm_activation_fusion) for Hopper GEMM with activation fusion.