英伟达(NVIDIA)对其CUDA软件栈进行了堪称最大规模的升级之一,而标志性的芯片架构师吉姆·凯勒(Jim Keller)认为,这可能标志着该软件排他性壁垒的终结。

可以说,迄今为止,在“人工智能热潮”中,当涉及到为开发者提供用于创建AI工作流程的特定库和框架时,CUDA确实为英伟达守住了一切。据我们所知,还没有其他公司成功复制过这样的软件栈。在此基础上,英伟达推出了一个名为CUDA Tile的重大更新,这是从传统的SIMT(单指令多线程)向基于Tile(分块)方法的转变。我们稍后将深入讨论这次更新,但芯片架构师吉姆·凯勒认为,这可能标志着CUDA护城河的终结。
现在,在此次更新之前,CUDA让程序员在微调诸如Tile大小、需加载到共享内存的数据以及在GPU上执行所需的计算资源等参数方面拥有主导权。但有了CUDA Tile,情况就完全改变了。英伟达引入了一种基于Tile的编程模型和一个名为Tile IR的新低级虚拟机,它将GPU视为一个Tile处理器。这使得程序员可以更专注于核心逻辑,而不是GPU的复杂性。
通过这种分块方法,英伟达成功减少了手动优化工作,转而专注于高度规则化的操作,例如结构化矩阵数学运算和卷积。这样做的一个主要好处是,CUDA Tile使得GPU编程能够面向更广泛的受众,并且由于算法是以抽象方式表达的,板载编译器会自行决定GPU参数。当然,与低层实现相比,CUDA Tile的性能不会那么出色,但这是英伟达让人工智能惠及大众的方法之一。
吉姆·凯勒认为CUDA Tile将使代码移植到其他GPU(例如AMD的GPU)变得容易得多,原因之一是分块方法在业界已非常普遍,被诸如Triton等框架所采用。因此,这最终提高了将CUDA代码移植到Triton,然后再移植到AMD人工智能芯片的可能性。其次,当你提高了抽象层次,开发人员就不再需要担心编写特定于架构的CUDA代码了,因此代码移植理应会变得容易得多。
然而,基于这一论点,在我看来,CUDA Tile实际上强化了英伟达的护城河,主要是因为其背后的专有技术,例如Tile IR,是针对英伟达硬件语义进行优化的。因此,虽然移植可能变得更容易,但实现过程仍将很复杂。最终,通过使CUDA编程变得更简单,英伟达实际上是在巩固其对CUDA软件栈的控制,这也是为什么这次最新更新被吹捧为GPU编程领域“革命”的原因之一。



