梦晨 发自 凹非寺
量子位 | 公众号 QbitAIGPU编程变天了。
英伟达发布最新版CUDA 13.1,官方径直定性:这是自2006年出身以来最大的跨越。
中枢变化是推出全新的CUDA Tile编程模子,让路发者不错用Python写GPU内核,15行代码就能达到200行CUDA C++代码的性能。

音书一出,芯片界神话东说念主物Jim Keller立即提问:
英伟达是不是亲手闭幕了CUDA的“护城河”?如若英伟达也转向Tile模子,AI内核将更容易移植到其他硬件上。

Jim Keller参与瞎想过AMD Zen架构、苹果A系列芯片、特斯拉自动驾驶芯片的”硅仙东说念主”,他的判断在行业里格外有重量。
那么问题来了:CUDA此次到底改了什么?为什么会被合计是”自毁长城”?
GPU编程范式从“线程”到“瓦片”要贯穿此次更新的趣味,得先转头一下传统CUDA编程有多折磨东说念主。
当年20年,CUDA一直采纳SIMT(单领导多线程)模子,开辟者写代码时,需要手动不断线程索引、线程块、分享内存布局、线程同步,每一个细节王人要我方记挂。
想要充分欺诈GPU性能,非常是用上Tensor Core这类专用模块,更是需要深厚的劝诫积存。
CUDA Tile澈底转变了这套玩法:
开辟者不再需要逐线程地编写实际旅途,而是把数据组织成Tile(瓦片),然后界说在这些Tile上实际什么运算。至于若何把这些运算映射到GPU的线程、Warp和Tensor Core上,编译器和启动时会自动惩办。
就或者NumPy之于Python。
英伟达为此构建了两个中枢组件:
CUDA Tile IR是一套全新的捏造领导集,它在高等说话和硬件之间加了一层轮廓,确保基于Tile编写的代码能在不同代际的GPU上启动,从现时的Blackwell到将来的架构王人能兼容。
cuTile Python则是面向开辟者的接口,径直用Python写GPU内核,门槛一下子从“HPC巨匠“降到了”会写Python的数据科学家王人不错干。
另外,此次更新还带来了一系列面向Blackwell的性能优化:
cuBLAS引入了FP64和FP32精度在Tensor Core上的仿真功能新增的Grouped GEMM API在MoE(搀杂巨匠模子)场景下能竣事高达4倍加快cuSOLVER的批处理特征明白在Blackwell RTX PRO 6000上比拟L40S竣事了约2倍的性能进步开辟者器具Nsight Compute新增了对CUDA Tile内核的性能分析赈济,不错把性能野心径直映射回cuTile Python源代码。现在CUDA Tile仅赈济Blackwell架构(策动才气10.x和12.x),开辟重心蚁合在AI算法上。英伟达暗示将来会膨胀到更多架构,并推出C++竣事。
硅仙东说念主的质疑:裁减门槛是一把双刃剑那么Jim Keller为什么说英伟达可能”闭幕了我方的护城河”?
关节就在于Tile编程模子不是英伟达特有的。AMD、Intel以过头他AI芯片厂商的硬件,在底层架构上雷同不错赈济基于Tile的编程轮廓。
当年CUDA难以移植,很猛过程上是因为SIMT模子与英伟达硬件深度绑定,开辟者要针对具体的GPU架构手写优化代码。这些代码换到别家硬件上,要么跑不了,要么性能大打扣头。
但Tile模子自然具有更高的轮廓端倪。当开辟者风气了“只管界说Tile运算,硬件细节交给编译器”这种想维形势后,表面上统一套算法逻辑更容易适配到其他赈济Tile编程的硬件上。
正如Jim Keller所说:”AI内核将更容易移植。”
不外英伟达也探讨了后手,CUDA Tile IR提供了跨代兼容性,但这种兼容性是建设在CUDA平台之上的。
开辟者写的代码如实更容易移植了,但移植的标的是英伟达自家的不同代GPU,而非竞争敌手的硬件。
从这个角度看,CUDA代码不错从Blackwell无缝迁徙到下一代英伟达GPU,但要迁徙到AMD或Intel的平台上,已经需要重写。
不论护城河是加深照旧松开,有极少是折服的:GPU编程的门槛如着实大幅裁减。
当年能肃穆独霸CUDA的开辟者是稀缺资源,会写Python的东说念主一持一大把,但能把代码优化到跑满Tensor Core的巨匠三三两两。
CUDA Tile和cuTile Python买通了这个瓶颈。英伟达在开辟者博客中提到,一个15行的Python内核性能不错失色200行手动优化的CUDA C++代码。
大宗数据科学家和AI策动者从此不错径直上手写高性能GPU代码,不必再等HPC巨匠来赞理优化。
参考连结:
[1]https://developer.nvidia.com/blog/focus-on-your-algorithm-nvidia-cuda-tile-handles-the-hardware[2]https://x.com/jimkxa/status/1997732089480024498