网易首页 > 网易号 > 正文 申请入驻

Pyptx:用Python手写英伟达PTX,绕过所有编译器

0
分享至

218个真实PTX文件字节级还原,4微秒启动开销——一个开发者单枪匹马搞出了绕过Triton和CUDA C++的第三条路。

为什么需要第四种写法


写GPU内核的选项已经够多了。Triton把硬件细节藏进编译器,CUDA C++让你用宏和内联汇编硬刚,Pallas走JAX路线。但总有人卡在中间:Triton的优化器做了太多假设,CUDA C++的编译流程太重,而纯PTX又像是回到汇编时代。

Patrick Toulme的Pyptx瞄准了这个缝隙。它让你用Python语法写PTX指令——每个函数调用严格对应一条PTX指令,中间没有优化器、没有自动调参、没有张量中间表示(IR)。

这不是又一个Python绑定。Pyptx是一个完整的领域特定语言(DSL),包含真实的PTX解析器、发射器和转译器。测试集里218个来自CUTLASS、Triton、fast.cu、DeepGEMM、ThunderKittens和LLVM测试套件的PTX文件,它能做到字节级还原。

核心设计很直白:保留Python的语法糖,去掉所有可能改变语义的中间层。你想要控制寄存器分配?直接操作。想精确调度共享内存?自己写。这种"零抽象"的定位,让它和现有工具形成鲜明对照。

Hopper和Blackwell的新指令怎么接

Pyptx对英伟达两代新架构的支持不是敷衍的。Hopper(sm_90a)这边,WGMMA(线程组矩阵乘累加)、TMA 2D/3D多播、mbarrier、集群启动全部暴露为Python API。Blackwell(sm_100a)更激进:tcgen05.mma、tcgen05.ld、TMEM(张量内存)、SMEM描述符、线程束特化(warp specialization)都进来了。

这些不是简单的封装。以WGMMA为例,Pyptx让你直接构造wgmma_tile,指定数据类型、维度和主存储方向。TMA的多播模式、mbarrier的等待/到达语义,都是显式调用而非编译器推断。

Blackwell的tcgen05指令尤其值得关注。这是英伟达新一代张量核心接口,Pyptx选择直接暴露而非等待上游编译器支持。对于需要抢发论文或产品上线的团队,这种"指令级抢先"可能是关键优势。

寄存器、谓词、屏障、共享内存的管理全部开放。没有隐藏的寄存器分配器替你决定,也没有隐式的同步点。好处是预测性极强,代价是写错就崩。

三种调用路径的实测开销

内核写完了怎么跑?Pyptx给了三条路,延迟差异很大。

CUDA图(CUDA graph)回放最快,约4微秒。这是把内核预录进执行图后的开销,适合推理阶段的固定计算图。缓存的C++扩展路径约14微秒,torch.compile路径14-22微秒。

这个对比很有意思。torch.compile的"编译一次到处运行"承诺,在这里变成了实实在在的延迟惩罚。如果你的场景是交互式训练或动态形状,4微秒和22微秒的差距会累积成显著瓶颈。

技术实现上,PTX通过cuModuleLoadData即时编译,再用约150行C++的启动垫片(launch shim)注册。这个垫片足够薄,没有额外的抽象层摊销。

Pyptx还埋了一个逆向工具:PTX转Python。运行python -m pyptx.codegen kernel.ptx --sugar --name my_kernel > my_kernel.py,可以把nvcc、Triton或Pallas生成的PTX还原成Python代码。--sugar标志会做符号还原、把自旋循环提升为ptx.loop(...)、折叠mbarrier等待块、分组表达式链。

这对调试和学习很有价值。你可以拿Triton生成的PTX,看它被"去糖"后长什么样,再决定哪些部分值得用手写Pyptx替换。

和Triton、CUDA C++的三角关系

Pyptx的定位需要仔细理解。Triton用编译器抽象硬件细节,你写tile-level算法,它帮你决定寄存器、调度、内存布局。Pyptx相反:你写的就是最终运行的指令,没有编译器做假设。

CUDA C++加内联PTX是另一条路,但开发体验割裂。你得在.cu文件里写宏,用nvcc编译,再和Python框架对接。Pyptx把整个流程留在Python里,和JAX、PyTorch eager、torch.compile的集成是原生的。

这不是说Pyptx要取代谁。它的适用场景很明确:当你发现Triton的优化器做了错误假设,或者需要用到编译器尚未支持的新指令,又或者想对关键内核做最后一轮指令级调优。

单开发者项目的事实也限制了它的当前适用范围。没有企业级支持,文档在pyptx.dev但明显还在建设中,社区生态为零。这决定了它现阶段更适合有PTX阅读能力的进阶用户,而非广谱采用。

一个最小GEMM内核长什么样

看代码比描述更直接。Pyptx的GEMM示例展示了它的语法风格:

装饰器@kernel定义了输入输出规格、网格划分、线程块配置和目标架构。Tile抽象处理张量布局,smem.wgmma_tile构造共享内存中的WGMMA兼容分块,reg.array显式分配寄存器数组。

函数体里的ptx.wgmma.mma_async(...)就是直接的PTX指令调用。没有隐式的同步,没有自动的流水线展开。每个操作的成本和时序都是可见的。

这种写法的心智负担明显高于Triton的@triton.jit装饰器。但作为交换,你获得了对Hopper张量核心行为的完全控制——包括那些Triton编译器可能尚未优化或错误优化的边缘情况。

谁会真的用它

Pyptx的受众画像很清晰:已经在用Triton但遇到编译器瓶颈的人,需要抢先支持Blackwell新指令的团队,以及想把关键内核从CUDA C++迁移到Python生态的开发者。

对于大多数人,Triton仍是更务实的选择。它的自动调参和优化器覆盖了90%的场景,社区支持和文档成熟度也远胜。Pyptx的价值在于那10%——当你需要打开 hood 检查时,它提供了一种不离开Python的方式。

PTX转Python的功能可能被低估。它降低了阅读和学习现有高性能内核的门槛,你可以把CUTLASS或DeepGEMM的输出当成教材,逐行理解工业级优化是怎么做的。

单开发者项目的风险也需要正视。如果Patrick Toulme的精力转移,或者英伟达PTX格式发生重大变更,维护连续性没有保障。这在生产环境选型时是硬约束。

这件事的真正意义

Pyptx的出现印证了一个趋势:Python正在吞噬GPU编程的每一层抽象。从Numba到Triton到Pyptx,开发者不断用Python语法包裹底层硬件,同时保留对关键细节的控制权。

它的独特之处在于"零中间层"的承诺。不是用Python生成CUDA C++再编译,不是用Python配置Triton的编译器选项,而是Python语法直接映射到PTX指令。这种激进简化对特定人群有不可替代的价值。

对于在Hopper或Blackwell上榨取最后10%性能的团队,Pyptx提供了一条绕过编译器假设的捷径。对于想理解GPU指令级行为的学习者,它是比反汇编更友好的入口。对于Python优先的ML基础设施团队,它填补了Triton和原始PTX之间的工具空白。

判断标准很简单:如果你最近三个月内因为Triton的优化器行为而重写内核,或者正在等待某个CUDA版本支持Blackwell新指令——Pyptx值得放进评估清单。否则,保持关注但暂不迁移。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
感叹祖国强大遭台当局打压,岛内挺“小舰长”说实话

感叹祖国强大遭台当局打压,岛内挺“小舰长”说实话

枢密院十号
2026-04-28 21:31:04
米饭被点名!医生直言:米饭冷冻24小时,抗性淀粉翻倍控糖护肠

米饭被点名!医生直言:米饭冷冻24小时,抗性淀粉翻倍控糖护肠

路医生健康科普
2026-04-26 19:55:03
马云预言又应验!若无意外,2026年后,中国房地产或迎来3大转变

马云预言又应验!若无意外,2026年后,中国房地产或迎来3大转变

石辰搞笑日常
2026-04-29 01:26:00
江苏省委、省政府决定,授予“外卖诗人”王计兵等人省劳模称号

江苏省委、省政府决定,授予“外卖诗人”王计兵等人省劳模称号

极目新闻
2026-04-28 16:57:32
我在沙特开餐馆娶了3位妻子,回国奔丧一星期,再回去时当场愣了

我在沙特开餐馆娶了3位妻子,回国奔丧一星期,再回去时当场愣了

千秋文化
2026-04-28 20:17:01
田永明被执行死刑

田永明被执行死刑

新京报
2026-04-28 12:52:08
怒砍13+11+3+3!一人打爆广东3大内线,徐昕兑现球迷“三字承诺”

怒砍13+11+3+3!一人打爆广东3大内线,徐昕兑现球迷“三字承诺”

弄月公子
2026-04-28 22:33:01
重磅!俄黑海舰队高层遭团灭,29集团军被打残

重磅!俄黑海舰队高层遭团灭,29集团军被打残

史政先锋
2026-04-28 18:10:17
某境外组织大力资助“躺平网红”,系统性开展“躺平洗脑”,国安部提醒

某境外组织大力资助“躺平网红”,系统性开展“躺平洗脑”,国安部提醒

界面新闻
2026-04-28 08:10:01
越南的耻辱!女子和美国大兵亲热完后,趴在床上一脸崇拜地看着他

越南的耻辱!女子和美国大兵亲热完后,趴在床上一脸崇拜地看着他

微野谈写作
2026-04-28 15:50:06
中国遭警告:拒收将面临供应中断!

中国遭警告:拒收将面临供应中断!

共工之锚
2026-04-28 23:20:50
辞任杭州市市长后,姚高员已任浙江省政府党组成员

辞任杭州市市长后,姚高员已任浙江省政府党组成员

上海法治声音
2026-04-28 14:52:08
世锦赛战报:墨菲被罚了28分,仍完成黑球绝杀,4分险胜赵心童

世锦赛战报:墨菲被罚了28分,仍完成黑球绝杀,4分险胜赵心童

吴朑爱游泳
2026-04-29 02:22:54
随着利雅得新月1-0,沙特联最新积分榜出炉:C罗率队5分优势领跑

随着利雅得新月1-0,沙特联最新积分榜出炉:C罗率队5分优势领跑

侧身凌空斩
2026-04-29 04:03:30
为什么说阳痿、跑步、心梗,成了“斩杀”中年男性的“三件套”?

为什么说阳痿、跑步、心梗,成了“斩杀”中年男性的“三件套”?

医药养生保健报社
2026-04-28 17:59:19
西安7名残疾人轮椅进地铁遭查近一小时,内急哀求仍要“查完证”

西安7名残疾人轮椅进地铁遭查近一小时,内急哀求仍要“查完证”

听心堂
2026-04-28 21:45:16
跌落神坛!40岁诺伊尔全场0扑救 让大巴黎5次射正进5球 仅获5.2分

跌落神坛!40岁诺伊尔全场0扑救 让大巴黎5次射正进5球 仅获5.2分

我爱英超
2026-04-29 05:22:10
济南文旅因夏雨荷引热议:大明湖底的十万亡魂,济南人可还记得

济南文旅因夏雨荷引热议:大明湖底的十万亡魂,济南人可还记得

十为先生
2026-04-28 14:53:25
突然闪崩,发生了什么?

突然闪崩,发生了什么?

中国基金报
2026-04-28 16:14:20
张柱任农业农村部党组书记

张柱任农业农村部党组书记

界面新闻
2026-04-28 20:57:23
2026-04-29 05:52:49
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
1813文章数 16关注度
往期回顾 全部

科技要闻

10亿周活目标落空!传OpenAI爆发内部分歧

头条要闻

美国:对35个伊朗相关实体及个人实施制裁

头条要闻

美国:对35个伊朗相关实体及个人实施制裁

体育要闻

魔术黑八活塞,一步之遥?!

娱乐要闻

蔡卓妍官宣结婚,老公比她小10岁

财经要闻

中央政治局会议定调,八大看点速览!

汽车要闻

拒绝疯狂套娃!现代艾尼氪金星长在未来审美点上

态度原创

教育
手机
亲子
本地
公开课

教育要闻

2026本科专业目录发布,新增38个新专业,交叉学科再添新成员

手机要闻

三星裸眼3D屏来了,广告牌能“跳”出来

亲子要闻

拍这期视频时眼泪止不住地流

本地新闻

用青花瓷的方式,打开西溪湿地

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版