Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CUDA编程新篇章:NVIDIA CUTLASS 4.0开启Python支持新时代

CUDA编程新篇章:NVIDIA CUTLASS 4.0开启Python支持新时代

作者头像
GPUS Lady
发布于 2025-05-17 06:50:07
发布于 2025-05-17 06:50:07
1350
举报
文章被收录于专栏:GPUS开发者GPUS开发者
GEMM通用矩阵运算是现代流体力学、量子化学等高性能应用,与神经网络层计算的AI模型训练/推理计算中,使用频率最高并且计算量非常大的基础数学,也是GPU架构非常具有优势的核心计算。

虽然NVIDIA很早就提供闭源的cuBLAS/cuDNN底层线性库,但这些几乎都得对C/C++底层调用非常熟悉的编程人员才能驾驭得动,并且对GPU硬件架构的捆绑度高,如果要移植到新架构的时候,还需要耗费不少精力去进行优化,对于普及这些高性能/AI模型训练等应用制造不小的门槛。

全名为CUDA Template Abstractions for Linear Algebra Subroutines(线性代数子程序的CUDA模板抽象)的CUTLASS,是NVIDIA在2017年发布的一套专注于实现高性能GEMM(矩阵运算)及相关计算的开源库,是作为 cuBLAS/cuDNN 等库的底层实现范式参考,其主要特色如下:

底层模板抽象

这些抽象为广泛的计算提供了广泛的支持,包括

1.混合精度计算,包括FP64、FP32、TF32、FP16、BF16的乘法累加抽象;

2.专用数据移动,引入异步内存管理技术,通过 TiledCopy 组件优化数据搬运与计算的重叠,提升整体吞吐量

3.通过张量核心(Tensor Core)指令的FP32仿真、8b浮点类型(e5m2和e4m3);

4.块缩放数据类型(NVIDIA NVFP4和OCP标准MXFP4、MXFP6、MXFP8),CUTLASS提供了不同级别的并行化层次结构原语,可以通过自定义平铺大小、数据类型和其他算法策略进行专门化和调优。

5.窄整数类型(4b和8b有符号和无符号整数);

6.二进制1b数据类型(架构允许对这些数据类型的原生支持),

7.这些数据类型跨越NVIDIA的Volta、Turing、Ampere、Ada、Hopper和Blackwell架构。

通过C++模板实现GEMM的高性能计算,包括封装线程层次、数据布局和内存访问逻辑,屏蔽硬件细节等等。这样在更新GPU设备时,几乎可以不需要修改代码,只要用新版本编译器重新编译即可,非常大幅度提高应用的生命周期与使用范围。

保持性能优异

大部分人的刻板印象,就是抽象模板的方式可能会影响计算性能。不过CUTLASS原语是非常高效,当用于构建设备范围的GEMM内核时,对峰值理论吞吐量的利用率接近最优。下图显示了CUTLASS 3.8在NVIDIA Blackwell SM100架构GPU上运行时,在各种输入和输出数据类型上的性能占理论峰值利用率的百分比。

下图显示了自CUTLASS 3.1以来,NVIDIA H100(NVIDIA Hopper架构)的CUTLASS性能持续改进。其中CUTALSS 3.5.1是用CUDA 12.5u1工具包编译的,Tensor Core是使用CUDA的mma和wgmma指令实现的。

CuTe后端核心库:

这是NVIDIA在2024年的CUTLASS 3.0中新增的重要功能,用于描述和操作线程和数据的张量,是C++CUDA模板抽象的集合,用于定义和操作线程和数据的分层多维布局。

CuTe提供Layout和Tensor对象,紧凑地打包数据的类型、形状、存储空间和布局,同时为用户执行复杂的索引。这让程序员专注于他们算法的逻辑描述,而CuTe则为他们做机械簿记。有了这些工具,我们可以快速设计、实现和修改所有密集的线性代数运算。

CuTe的核心抽象是分层多维布局,可以用数据数组来表示张量。布局的表示足够强大,几乎可以表示实现高效密集线性代数所需的一切。布局也可以通过函数组合进行组合和操纵,我们在其上构建了一系列常见的操作,如平铺和分区。

CUTLASS 3.0及更高版本在其模板中的整个GEMM层次结构中采用了CuTe。这大大简化了设计,提高了代码的可组合性和可读性。

CUTLASS 4.0扩充Python的支持

Python作为目前普及度最靠前并且上手度非常轻松的编程语言,如果缺少对这方面的支持,将会大大影响应用的普及程度。有鉴于此,NVIDIA在CUTLASS 4.0中新增加的最重要功能,就是对Python的支持。

CUTLASS基于前面版本对C++的内核编程抽象的丰富生态系统,以DSL(domain-specific languages)这些Python原生接口,用于基于核心CUTALSS和CuTe概念编写高性能CUDA内核,而不会对性能产生任何影响。这允许更平滑的学习曲线,更快的编译时间,与DL框架的原生集成,而无需编写粘合代码,以及更直观的元编程,不需要深厚的C++专业知识。

NVIDIA将CUTLASS DSL视为一个领域特定语言(DSL)家族,这个4.0发布的CuTe DSL算是第一个。这是一个低级编程模型,与CuTe C++抽象完全一致,暴露了布局、张量、硬件原子等核心概念,以及对硬件线程和数据层次结构的完全控制。

CuTe DSL演示了针对NVIDIA的Ampere、Hopper和Blackwell架构实现的可编程、高通量张量核心的最优矩阵乘法和其他线性代数运算,将成为学生、研究人员和性能工程师不可或缺的工具—使GPU编程的学习曲线变得平坦,快速原型化内核设计,并将优化的解决方案投入生产。

CuTe DSL目前处于公开测试阶段,将于2025年夏末正式发布。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NVIDIA希望有更多支持CUDA的编程语言
CUDA 并行计算平台可以使用 C++、Fortran 和 Python 进行编程,但该公司正在寻找其他人来运行其 GPU。
云云众生s
2024/03/29
1940
《PytorchConference2023 翻译系列》7-深入探索CUTLASS:如何充分利用Tensor Cores​​
嗨,我们要开始了。我叫马修·尼斯利。我是NVIDIA的深度学习compiler PM,今天我将介绍一些针对NVIDIA Tensorcores的使用方法。首先我要讲一下Cutlass。我会给你一些背景和概述,为什么你可能会使用它,一些最新和即将推出的功能,然后我会概述一下开放平台Triton。如果你刚刚参加了上一场讲座的话那你已经是懂哥了。
BBuf
2023/12/28
2.2K0
《PytorchConference2023 翻译系列》7-深入探索CUTLASS:如何充分利用Tensor Cores​​
DeepSeek开源周第三天:FP8 通用矩阵乘法 (GEMM)库
Deepseek开源周第三弹:DeepGEMM,一个 FP8 GEMM 库,支持密集 GEMM 和 MoE GEMM,为 V3/R1 训练和推理提供支持。
AIGC新知
2025/02/26
3010
DeepSeek开源周第三天:FP8 通用矩阵乘法 (GEMM)库
问答 | 如何理解 NVIDIA 新 GPU 架构 Turing 的 Tensor Core?
问:如何理解 NVIDIA 新 GPU 架构 Turing 的 Tensor Core?
AI研习社
2018/09/25
2.5K0
问答 | 如何理解 NVIDIA 新 GPU 架构 Turing 的 Tensor Core?
深度 | 英伟达深度学习Tensor Core全面解析
AI 科技评论消息,不久前,NVIDIA在SIGGRAPH 2018上正式发布了新一代GPU架构——Turing(图灵),黄仁勋称Turing架构是自2006年CUDA GPU发明以来最大的飞跃。Turing架构的两大重要特性便是集成了用于光线追踪的RT Core以及用于AI计算的Tensor Core,使其成为了全球首款支持实时光线追踪的GPU。
AI科技评论
2018/09/21
4.1K0
深度 | 英伟达深度学习Tensor Core全面解析
【AI系统】GPU 架构回顾(从2018年-2024年)
2018 年 Turing 图灵架构发布,采用 TSMC 12 nm 工艺,总共 18.6 亿个晶体管。在 PC 游戏、专业图形应用程序和深度学习推理方面,效率和性能都取得了重大进步。相比上一代 Volta 架构主要更新了 Tensor Core(专门为执行张量/矩阵操作而设计的专门执行单元,深度学习计算核心)、CUDA 和 CuDNN 库的不断改进,更好地应用于深度学习推理。RT Core(Ray Tracing Core)提供实时的光线跟踪渲染,包括具有物理上精确的投影、反射和折射,更逼真的渲染物体和环境。支持 GDDR6 内存,与 GDDR5 内存相比,拥有 14 Gbps 传输速率,实现了 20%的的效率提升。NVLink2.0 支持 100 GB/s 双向带宽,使特定的工作负载能够有效地跨两个 GPU 进行分割并共享内存。
用户11307734
2024/11/27
3760
【连载】OpenAITriton MLIR 第二章 Batch GEMM benchmark
通过前两章对于triton的简单介绍,相信大家已经能够通过从源码来安装triton,同时通过triton提供的language前端写出自己想要的一些计算密集型算子。这章开始,我们通过构建一套比较标准的batch gemm的benchmark,来看看目前这些主流的代码生成工具,高性能模板库,与厂商提供的vendor library的差距。因为只有明确了目前的差距,后期关于针对性的优化才能做到点上。这一章,我将使用一个batch的gemm作为例子,来看看triton目前对其的优化能力。选batch gemm的原因是因为目前的LLM中不可避免会有对应的attention操作,而attention操作中,核心的计算密集型算子就是batch的gemm,如果你能够对batch的gemm有一个很好的优化思路,那么在MLSys中大部分的算子优化类的工作对你来说将不会显得那么无从下手。
BBuf
2023/08/21
9010
【连载】OpenAITriton MLIR 第二章 Batch GEMM benchmark
【论文解读】基于MLIR生成矩阵乘法的高性能GPU代码,性能持平cuBLAS
本文是对 https://arxiv.org/abs/2108.13191 这篇论文进行解读,学习一下如何基于MLIR编译器基础设施生成高效的GPU代码。本文的阅读的先后顺序分别为:
BBuf
2022/04/06
2.7K0
【论文解读】基于MLIR生成矩阵乘法的高性能GPU代码,性能持平cuBLAS
pytorch v2.7.0震撼发布!Blackwell GPU支持+编译性能狂飙,AI开发者必看10大升级
NCCL 初始化时在 12.2 驱动下出现 CUDA “无效参数”失败 部分使用 12.2 CUDA 驱动(版本 535)的用户报告在 NCCL 或对称内存初始化过程中遇到“CUDA 驱动错误:无效参数”的问题。该问题正在调查中,详情见 #150852。如果您是从源码编译的 PyTorch,已知的解决方法是使用 CUDA 12.2 工具包重新编译 PyTorch。否则,您可以尝试升级系统中的 CUDA 驱动。
福大大架构师每日一题
2025/04/28
3650
pytorch v2.7.0震撼发布!Blackwell GPU支持+编译性能狂飙,AI开发者必看10大升级
【AI系统】Tensor Core 架构演进
自 Volta 架构时代起,英伟达的 GPU 架构已经明显地转向深度学习领域的优化和创新。2017 年,Volta 架构横空出世,其中引入的张量核心(Tensor Core)设计可谓划时代之作,这一设计专门针对深度学习计算进行了优化,通过执行融合乘法加法操作,大幅提升了计算效率。与前一代 Pascal 架构相比,Volta 架构在深度学习训练和推理方面的性能提升了 3 倍,这一飞跃性进步为深度学习的发展提供了强大的硬件支持。
用户11307734
2024/11/27
3000
【知识】详细介绍 CUDA Samples 示例工程
CUDA 是“Compute Unified Device Architecture (计算统一设备架构)”的首字母缩写。CUDA 是一种用于并行计算的 NVIDIA 架构。使用图形处理器也可以提高 PC 的计算能力。
小锋学长生活大爆炸
2024/06/28
2.2K0
DeepSeek开源FlashMLA,从GPU架构进行优化开始......
终于,中国的OpenAI----DeepSeek ,在全球爆火之后,开源了他们自己的第一天项目。
AIGC新知
2025/02/26
1492
DeepSeek开源FlashMLA,从GPU架构进行优化开始......
旷视MegEngine TensorCore 卷积算子实现原理
2020年5月Nvidia发布了新一代的GPU架构安培(Ampere)。其中和深度学习关系最密切的莫过于性能强劲的第三代的TensorCore,新一代的TensorCore支持了更为丰富的DL(Deep Learning)数据类型,包括了新的TesorFloat-32(TF32),Bfloat16(BF16)计算单元以及INT8,INT4和INT1的计算单元,这些计算单元为DL推理提供了全面的支持。
Amusi
2021/06/09
2.3K0
旷视MegEngine TensorCore 卷积算子实现原理
【BBuf的cuda学习笔记十】Megatron-LM的gradient_accumulation_fusion优化
这篇文章来解析一下Megaton-LM涉及到的一个优化gradient_accumulation_fusion。这里fusion的意思是在gemm接口中会将当前的结果累加到先前计算的梯度上,所有这些都在一个操作中完成,可以避免多次访问global memory提升算子的带宽。下面解析一下这个优化的调度逻辑和cuda实现。
BBuf
2023/08/25
1.9K0
【BBuf的cuda学习笔记十】Megatron-LM的gradient_accumulation_fusion优化
NVIDIA Blackwell RTX GPU与CUDA 12.8框架更新指南
随着NVIDIA Blackwell RTX GPU的发布,为了确保应用程序与这些新一代GPU的兼容性和最佳性能,应用开发者必须更新到最新的AI框架。NVIDIA专门发布了一个指南,详细介绍与NVIDIA Blackwell RTX GPU兼容所需的核心软件库更新,特别是CUDA 12.8的相关信息。
GPUS Lady
2025/02/04
2K0
NVIDIA Blackwell RTX GPU与CUDA 12.8框架更新指南
英伟达CUDA高性能计算库详解
NVIDIA为CUDA生态系统提供了许多高性能库和框架,这些工具旨在简化并行计算的复杂度,并加速各种应用程序的开发。 cuBLAS (CUDA Basic Linear Algebra Subprograms)
用户7353950
2024/11/23
6430
英伟达CUDA高性能计算库详解
DeepGEMM:全球首个开源的 FP8 矩阵加速器技术解析
随着人工智能和深度学习的快速发展,计算效率和资源优化成为研究和工业应用中的关键问题。矩阵乘法(General Matrix Multiplication,GEMM)作为深度学习中最为基础且频繁使用的计算操作,其性能直接影响到模型训练和推理的速度。近年来,随着硬件技术的进步,尤其是 NVIDIA Hopper 架构的推出,低精度计算格式(如 FP8)逐渐成为研究热点。DeepSeek 开源的 DeepGEMM 矩阵加速器正是在这一背景下应运而生,它不仅填补了全球范围内 FP8 矩阵加速器的空白,还通过一系列创新技术实现了显著的性能提升。本文将详细解析 DeepGEMM 的技术原理、设计架构以及其背后的技术挑战和优化策略。
用户7353950
2025/03/03
2310
DeepGEMM:全球首个开源的 FP8 矩阵加速器技术解析
CUDA编程模型都改了!英伟达架构师团队撰文详解:Hopper为啥这么牛?
---- 新智元报道   编辑:LRS 【新智元导读】最近老黄掏出的显卡核弹Hopper H100可谓是风头无两,性能全面碾压老前辈。但除了800亿晶体管,Hopper架构也是完全重新设计的,一起看看架构里面还有啥细节? 在英伟达GTC 2022大会上,老黄更新了服役近两年的安培微架构(Ampere),推出Hopper架构,并抛出一块专为超算设计、包含800亿个晶体管的显卡Hopper H100,比老前辈A100显卡的540亿晶体管还要高出不少。 但光看名字和参数还不够,Hopper到底牛在哪? 最近
新智元
2022/04/06
7580
CUDA编程模型都改了!英伟达架构师团队撰文详解:Hopper为啥这么牛?
【AI系统】GPU 架构回顾(从2010年-2017年)
1999 年,英伟达发明了 GPU(graphics processing unit),本文将介绍英伟达 GPU 从 Fermi 到 Blackwell 共 9 代架构,时间跨度从 2010 年至 2024 年,具体包括费米(Feimi)、开普勒(Kepler)、麦克斯韦(Maxwell)、帕斯卡(Pashcal)、伏特(Volt)、图灵(Turing)、安培(Ampere)和赫柏(Hopper)和布莱克韦尔(Blackwell)架构。经过 15 年的发展,CUDA 已成为英伟达的技术“护城河”,Tensor Core5.0,NVLink5.0,NVswitch4.0,Transformer Engine2.0 等技术迭代更新,正如英伟达公司官方宣传语所言:“人工智能计算领域的领导者,推动了 AI、HPC、游戏、创意设计、自动驾驶汽车和机器人开发领域的进步。”
用户11307734
2024/11/27
3210
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
近期,AIGC领域呈现出一片繁荣景象,其背后离不开强大算力的支持。以ChatGPT为例,其高效的运行依赖于一台由微软投资建造的超级计算机。这台超级计算机配备了数万个NVIDIA A100 GPU,并利用60多个数据中心的数十万个GPU辅助,为ChatGPT提供了强大的算力支持。这种规模的算力部署不仅体现了AIGC技术的先进性,也预示着人工智能技术未来的发展趋势。这种集成了高性能计算、大数据处理和人工智能算法的超级计算机,将成为推动科技进步的重要引擎。
汀丶人工智能
2024/01/29
8.1K0
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
推荐阅读
相关推荐
NVIDIA希望有更多支持CUDA的编程语言
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档