Jim Keller:英伟达“自毁”CUDA护城河

文章核心观点 - NVIDIA对其CUDA软件堆栈进行了重大升级,推出了CUDA Tile,将传统的SIMT编程模型转变为基于图块的方法,旨在简化GPU编程并提升对张量核心等专用硬件的抽象[2] - 芯片架构师Jim Keller认为,此次更新可能标志着CUDA软件独占性的结束,因为基于图块的方法在业界普遍,可能简化代码向其他GPU平台的移植[2] - 然而,文章也指出,CUDA Tile通过其专有技术优化了NVIDIA硬件,实际上可能巩固了公司对CUDA生态的控制,加强了其竞争优势[5] CUDA Tile 更新的核心内容与意义 - CUDA Tile是NVIDIA CUDA平台自2006年诞生以来最大的进步,引入了基于图块的并行编程虚拟指令集,是GPU编程领域的一次“革命性”更新[6] - 更新彻底改变了编程模式:此前程序员需精细调整图块大小、内存等参数;之后,程序员可将更多精力集中于核心算法逻辑,而由编译器和运行时自动处理硬件复杂性[4] - 新模型专注于结构化矩阵运算和卷积等高度常规的操作,成功减少了手动优化需求,使更广泛的用户群体能够轻松上手GPU编程[4] - 此次更新是NVIDIA让AI惠及所有人的方法之一,尽管其性能可能略逊于底层手动优化实现[4] 技术架构与实现细节 - CUDA Tile的基础是CUDA Tile IR,这是一套全新的底层虚拟机,引入了一套用于原生图块操作的虚拟指令集[4][9] - 它允许开发者以更高层次编写算法,抽象化张量核心等专用硬件的细节,使代码能够兼容当前及未来的张量核心架构[7] - CUDA Tile IR通过原生支持基于图块的程序,扩展了CUDA平台功能,类似于PTX确保SIMT程序可移植性的角色[9] - 编程范式允许开发者通过指定数据块来编写算法,并定义对这些块执行的计算,无需逐个元素设置执行方式,类似于Python中NumPy库的操作方式[7][9] - 大多数开发者将通过NVIDIA cuTile Python等高级接口与CUDA Tile交互,而CUDA Tile IR主要面向编译器或库的开发者[12] 对行业生态与竞争格局的潜在影响 - 基于图块的方法在业界已十分普遍,例如Triton等框架就采用了这种方法,这可能使将CUDA代码先移植到Triton,再移植到AMD等公司的AI芯片上变得更加容易[5] - 当抽象层级提高时,开发者无需再编写特定于架构的CUDA代码,理论上代码移植会变得更加容易[5] - 然而,CUDA Tile背后的专有技术针对NVIDIA硬件语义进行了深度优化,因此即使移植变容易,实现高性能仍然复杂[5] - 通过简化CUDA编程,NVIDIA实际上可能是在巩固其对CUDA软件堆栈的控制,加强其竞争优势[5] - CUDA Tile并非要取代SIMT,两者可以共存:开发者可根据需要选择编写SIMT内核或使用张量核心的分块内核,两者在软件堆栈中作为互补路径存在[10]