当前位置:首页 > 科技资讯 > 正文

CUDA 13.1革新:Python编程挑战GPU性能极限

CUDA编程迎来了前所未有的变革。

英伟达最新发布的CUDA 13.1,官方宣称这是自2006年问世以来最重大的进步。

核心变革在于引入了全新的CUDA Tile编程模型,使得开发者能够以Python编写GPU内核,仅用15行代码即可达到200行CUDA C++代码的性能。

CUDA 13.1革新:Python编程挑战GPU性能极限 13.1 Tile Python编程 GPU性能 第1张

消息一出,芯片界传奇人物Jim Keller立刻发问:

英伟达是否亲手削弱了CUDA的竞争优势?若英伟达也转向Tile模型,AI内核将更容易迁移至其他硬件。

CUDA 13.1革新:Python编程挑战GPU性能极限 13.1 Tile Python编程 GPU性能 第2张

Jim Keller,这位曾参与设计AMD Zen架构、苹果A系列芯片、特斯拉自动驾驶芯片的”硅仙人”,其观点在业内具有举足轻重的地位。

那么,CUDA究竟进行了哪些变革?为何会被认为是在”自掘坟墓”呢?

从“线程”到“瓦片”:GPU编程范式的转变

要理解此次更新的意义,需回顾传统CUDA编程的复杂性。

过去二十年,CUDA一直采用SIMT(单指令多线程)模型。开发者编写代码时,需手动管理线程索引、线程块、共享内存布局及线程同步,每个细节均需自行处理。

要充分利用GPU性能,特别是利用Tensor Core等专用模块,需具备深厚的经验积累。

CUDA Tile彻底颠覆了这一模式:

开发者无需逐线程编写执行路径,而是将数据组织成Tile(瓦片),并定义在这些Tile上执行哪些运算。至于如何将运算映射到GPU的线程、Warp和Tensor Core上,则由编译器和运行时自动处理。

这就像NumPy之于Python。

CUDA 13.1革新:Python编程挑战GPU性能极限 13.1 Tile Python编程 GPU性能 第3张

为此,英伟达构建了两个核心组件:

CUDA Tile IR是一套全新的虚拟指令集,在高级语言和硬件之间增加了抽象层,确保基于Tile编写的代码能在不同代际的GPU上运行,从当前的Blackwell到未来的架构都能兼容。

cuTile Python则是面向开发者的接口,允许直接使用Python编写GPU内核,门槛从“HPC专家”降低到了“会写Python的数据科学家”。

CUDA 13.1革新:Python编程挑战GPU性能极限 13.1 Tile Python编程 GPU性能 第4张

此外,此次更新还带来了一系列针对Blackwell的性能优化:

  • cuBLAS引入了Tensor Core上的FP64和FP32精度仿真功能
  • 新增的Grouped GEMM API在MoE(混合专家模型)场景下可实现高达4倍的加速
  • cuSOLVER的批处理特征分解在Blackwell RTX PRO 6000上相比L40S实现了约2倍的性能提升
  • “双刃剑”效应:门槛降低的双面影响

    那么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编程的门槛确实在大幅降低。