前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
最新数据挖掘赛事方案梳理!
科大讯飞:糖尿病遗传风险检测挑战赛。背景:截至2022年,中国糖尿病患者近1.3亿。中国糖尿病患病原因受生活方式、老龄化、城市化、家族遗传等多种因素影响。同时,糖尿病患者趋向年轻化。
Datawhale
2022/10/31
4390
最新数据挖掘赛事方案梳理!
《如何打一场数据挖掘赛事》入门版
这是一份简易的竞赛教程,我们的目的是帮助同学们迈出 AI 训练大师之路的第一步。数据挖掘中会有很多需要学习的地方,建议入门的同学可以暂时不用着急去弄懂各个代码的原理,先跑通代码,然后看代码中的涉及的知识点去查询相关资料进行学习,这样能让你学习更加有目标性,也容易找到学习的乐趣。千里之行,始于足下,从这里,开启你的 AI 学习之旅吧!
Datawhale
2022/10/31
2860
《如何打一场数据挖掘赛事》入门版
我写了一份初学者的学习实践教程!
上周在Datawhale分享了一篇关于数据挖掘赛事的baseline方案,有老师把它作为学习资料给学生实践学习后,有挺多同学反应学习实践中仍然有困难:
Datawhale
2022/10/31
3440
我写了一份初学者的学习实践教程!
从0梳理1场数据挖掘赛事!
摘要:数据竞赛对于大家理论实践和增加履历帮助比较大,但许多读者反馈不知道如何入门,本文以河北高校数据挖掘邀请赛为背景,完整梳理了从环境准备、数据读取、数据分析、特征工程和数据建模的整个过程。
Datawhale
2021/02/05
8410
从0梳理1场数据挖掘赛事!
sklearn调包侠之KNN算法
天下武功,唯快不破。今天就正式讲解如何通过《sklearn小抄》武林秘籍,成为一代宗师调包侠。欲练此功,必先自宫;就算自宫,未必成功;若不自宫,也能成功。传说江湖(机器学习领域)有两大派别:一是学术派,该派资历高,家境好,多为名门世家(学历高,数学好),重基础(数学推导和理论知识);一是实践派,以找人切磋为主(实践为主),多在切磋中提升能力。《机器学习实战》系列为学术派,《sklearn调包侠》系列为实践派,该系列会简单讲解原理,多引用于《机器学习实战》系列的算法讲解(必要的内力),然后在实操中完成各机器学
罗罗攀
2018/06/27
6660
Python数据分析与机器学习在医疗诊断中的应用
在现代医疗领域,数据分析与机器学习的应用已经成为提升医疗诊断效率和准确性的关键手段。医疗诊断系统通过对大量患者数据进行分析,帮助医生预测疾病风险、制定个性化治疗方案,并且在疾病早期阶段提供预警。Python作为一种灵活且功能强大的编程语言,结合其丰富的数据分析和机器学习库,成为医疗诊断系统开发的首选工具。本文将探讨Python数据分析与机器学习在医疗诊断中的应用,详细介绍构建医疗诊断系统的步骤和技术。
屿小夏
2024/06/16
3570
Python数据分析与机器学习在医疗诊断中的应用
北航学长的NLP赛事教程!
在人工智能领域的学习中,研读有关文献是非常重要的学习途径,而如何在汗牛充栋的论文库中,高效快速的检索到相关重要文献,就成为知识学习首先要解决的难点。
Datawhale
2022/10/31
4770
北航学长的NLP赛事教程!
"花生米一碟"之神经网络中的变量的shape
最后一列是第九列分别是0,1这里笔者应该能猜到这是患病与否的标致,0就是没有糖尿病,1就是有糖尿病。
Tom2Code
2023/12/11
2020
"花生米一碟"之神经网络中的变量的shape
数据分享|PYTHON用决策树分类预测糖尿病和可视化实例|附代码数据
在本文中,决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题
拓端
2023/03/13
6331
医学假阴性?看看在机器学习中如何用来衡量分类模型的效果(附代码)
近日来,新冠肺炎核酸检测“假阴性”引起了关注。所谓的假阴性,就是患者是新型冠状病毒感染者,但是核酸没检测出来,报告阴性。有专家分析,任何核酸检测的检出率都不可能达到100%,出现假阴性具有不可避免性,这是技术本身存在的局限性。
数据派THU
2020/02/20
1.4K0
医学假阴性?看看在机器学习中如何用来衡量分类模型的效果(附代码)
机器学习还能预测心血管疾病?没错,我用Python写出来了
全球每年约有1700万人死于心血管疾病,当中主要表现为心肌梗死和心力衰竭。当心脏不能泵出足够的血液来满足人体的需要时,就会发生心力衰竭,通常由糖尿病、高血压或其他心脏疾病引起。
CDA数据分析师
2020/09/14
2.9K2
机器学习还能预测心血管疾病?没错,我用Python写出来了
PYTHON用决策树分类预测糖尿病和可视化实例
决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题。
拓端
2022/03/09
9430
PYTHON用决策树分类预测糖尿病和可视化实例
【机器学习实战】kaggle 欺诈检测---如何解决欺诈数据中正负样本极度不平衡问题
使用机器学习模型识别欺诈性信用卡交易,这样可以确保客户不会为未曾购买的商品承担费用。
机器学习司猫白
2025/01/21
1520
【机器学习实战】kaggle 欺诈检测---如何解决欺诈数据中正负样本极度不平衡问题
数据挖掘从入门到放弃(二):决策树
“ 上篇内容介绍的是线性回归和逻辑回归模型,输入输出是连续值,分类模型的输出是一个有限集合,本篇介绍决策分类树算法”
数据社
2020/05/25
6570
极度梯度提升之玩转借贷俱乐部
在《决策树之玩转借贷俱乐部》和《集成树之玩转借贷俱乐部》两贴中,斯蒂文用决策树,随机森林和提升树预测了借贷俱乐部里面的贷款的良恶性。老板最近听说了极度梯度提升 (XGBoost),而且知道几乎每个参加 Kaggle 比赛的人都会用它。老板想让斯蒂文精通它,并且用来预测借贷俱乐部 (Lending Club) 的贷款的良恶性。
用户5753894
2019/07/05
1.3K0
极度梯度提升之玩转借贷俱乐部
数据挖掘十大算法之 k-NN
k-NN (k-nearest neighbor) 由 Cover 和 Hart 于 1968 年提出,属于机器学习算法中的监督学习算法,可以用来解决分类和回归问题。
mr.songw
2021/01/22
1.3K0
数据挖掘十大算法之 k-NN
数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|附代码数据
世界卫生组织估计全世界每年有 1200 万人死于心脏病。在美国和其他发达国家,一半的死亡是由于心血管疾病
拓端
2023/04/26
7630
用随机森林预测糖尿病:从数据到模型
文章链接:https://cloud.tencent.com/developer/article/2470427
远方2.0
2024/11/26
2190
用随机森林预测糖尿病:从数据到模型
基于jieba、TfidfVectorizer、LogisticRegression的文档分类
jieba中文叫做结巴,是一款中文分词工具,官方文档链接:https://github.com/fxsjy/jieba TfidfVectorizer中文叫做词袋向量化模型,是用来文章内容向量化的工具,官方文档链接:http://sklearn.apachecn.org/cn/0.19.0/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html LogisticRegression中文叫做逻辑回归模型,是一种基础、常用的分类方法。
潇洒坤
2018/09/10
4.3K0
基于jieba、TfidfVectorizer、LogisticRegression的文档分类
Kaggle系列- Russia房产价格预测top1%(22/3270)方案总结
比赛名称:Sberbank Russian Housing Market 比赛链接:https://www.kaggle.com/c/sberbank-russian-housing-market
致Great
2021/01/18
1K0
推荐阅读
相关推荐
最新数据挖掘赛事方案梳理!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档