![]()
新智元報道
編輯:定慧
一文看懂CUDA Tile背后的算盤與野心。
英偉達的CUDA,剛剛宣布了該平臺誕生20年來最重大的一次更新!
![]()
其中,最核心也是最顛覆性的更新的就是CUDATile,讓開發者可以用Python代替C++寫內核代碼。
在CUDA 13.1版本中,他們引入了一種叫做CUDA Tile的技術——一種全新的顯卡代碼編寫方式,讓整個過程更省事,更具未來適應性。
旨在通過抽象化底層硬件(如Tensor Cores)細節,降低開發門檻。可以把它想象成從手動調樂團中的每件樂器,轉變為單純指揮音樂。
![]()
這一重磅更新迅速引來了芯片界傳奇人物、Tenstorrent CEOJim Keller的關注與質疑:
Jim Keller提出一個觀點:這次更新是否終結了CUDA的「護城河」?
![]()
他的理由是當英偉達的GPU也轉向Tile瓦片結構,而其他硬件廠商一樣轉向瓦片架構,AI內核將更容易移植。
![]()
但事實真是如此嗎?
要想討論清楚這件事,需要分析兩個問題:
1. Jim Keller是誰?為什么他的話有分量
2. CUDA Tile此前是什么技術?CUDA護城河到底是什么
Jim Keller是當代芯片界最有代表性的CPU/SoC架構師之一,業內很多人直接叫他「傳奇架構師」、「芯片圈GOAT之一」。
一句話,他是那種真正改寫過CPU發展路線圖的人。
凡是近二十多年x86、移動SoC、AI芯片的幾次大級別翻身仗,背后大概率能看到Jim Keller的影子。
![]()
更細一點說:
x86-64時代的奠基人之一:
作為x86-64指令集和HyperTransport的共同作者,他直接影響了今天幾乎所有桌面、服務器CPU的ISA與互連方式。
多次帶隊完成「公司級」翻身戰:
AMD Athlon/K8時代第一次讓AMD在x86性能上正面硬剛Intel。Zen重新讓AMD從「快死了」變成今天和Intel分庭抗禮。在Apple時期的A4/A5開啟了iPhone自研SoC的路線,間接鋪路到后面的M系列。
CPU、手機SoC、自動駕駛AI加速器的「全棧」架構師:
很少有人像他一樣,在通用CPU、移動SoC、車載SoC、AI加速器上都做過一線設計和架構決策。近幾年他頻繁在TSMC、三星等論壇談未來工藝與架構,被稱為「半導體設計傳奇」。
所以Jim Keller的觀點非常有參考性意義。
英偉達是否通過這次更新拆除了CUDA的「護城河」,還是以另一種形式將其加固?
去年,Jim Keller曾直言「CUDA是沼澤而非護城河」。
意思是CUDA的復雜性讓開發者深陷其中無法脫身。
![]()
讓我們簡單回顧下CUDA的歷史。
而此次CUDA Tile之前,早在2006年,英偉達發布了G80架構和CUDA,CUDA的出現將這些并行的計算單元抽象為通用的線程(Threads),從而開啟了通用GPU計算(GPGPU)的黃金時代。
![]()
二十年來,基于「單指令多線程」(SIMT,Single Instruction,Multiple Threads)的編程模型一直是GPU計算的「圣經」。
開發者習慣了從單個線程的視角出發,思考如何將成千上萬個線程映射到數據上。
在人工智能大爆發的今天,計算的核心原子不再是單一的標量數值,而是張量(Tensor)和矩陣。
傳統的SIMT模型在處理這種塊狀數據時,顯得日益笨重且效率低下。
技術的重構
CUDA Tile與SIMT的范式斷裂
要理解CUDA Tile更新了什么,首先必須理解為什么舊方式行不通了。
SIMT模型的核心假設是:程序員編寫一段串行代碼(Kernel),GPU硬件負責將這段代碼實例化為成千上萬個線程。
粗暴一點理解:
想象一個包工頭(GPU的控制單元)和32個搬磚工(線程,Thread)。比如要把一張圖變亮,包工頭只要一個命令,每個工人負責一個像素點,大家互不干擾,動作整齊劃一。
這就是SIMT的精髓:雖然人多,但聽同一個指令,處理各自的小數據。
這種模型在處理圖像像素或簡單的科學計算時非常完美,因為每個像素的計算是獨立的。
然而,現代AI計算的核心是矩陣乘法。
AI運算(深度學習)的核心不再是處理單個像素,而是矩陣乘法。
![]()
在硬件層面,英偉達引入了Tensor Core(張量核心)來加速矩陣運算。
Tensor Core不是一次處理一個數,而是一次處理一個16x16或更大的矩陣塊。
為了用 SIMT 模型去開動Tensor Core,程序員不得不同時指揮多個線程。
在SIMT中,程序員仍在控制單個線程。為了使用Tensor Core,程序員必須指揮32個線程(一個Warp)協同工作,手動將數據從全局內存搬運到共享內存,再加載到寄存器,通過復雜的wmma(Warp-level Matrix Multiply Accumulate)指令進行同步。
開發者必須精細地管理線程間的同步和內存屏障。稍有不慎,就會導致死鎖或數據競爭。
不同代際的GPU其Warp調度機制和Tensor Core指令集均有不同。
針對Hopper架構優化的極致性能代碼,往往無法在Blackwell上直接運行,需要重新調優。
這就是Jim Keller所說的「沼澤」——代碼里堆積了針對不同硬件特性的補丁,既不美觀也難以維護。
![]()
這就是「SIMT力不從心」的原因:試圖用管理獨立個體的邏輯(SIMT),去指揮一個需要高度協同的集體動作(Tensor Core)
CUDA Tile:瓦片化計算的誕生
CUDA 13.1引入的CUDA Tile徹底拋棄了「線程」這一基本原子,轉而以「瓦片」(Tile)作為編程的核心單位。
核心概念:什么是Tile?
在CUDA Tile模型中,Tile被定義為多維數組的一個分塊(Subset of arrays)。
開發者不再思考「第X號線程執行什么操作」,而是思考「如何將大矩陣切分成小塊(Tiles),以及對這些塊進行什么數學運算(如加法、乘法)」。
瓦片模型(左)將數據分割為塊,編譯器將其映射到線程。SIMT模型(右)將數據同時映射到塊和線程。
![]()
這種轉變類似于從匯編語言跳轉到了高級語言:
SIMT:手動管理寄存器分配、線程掩碼、內存合并。Tile:聲明數據塊形狀(Layout),聲明算子(Operator),編譯器負責一切。
這種編程范式在Python等語言中很常見,像NumPy這樣的庫允許指定矩陣等數據類型,然后用簡單的代碼指定并執行批量操作。
![]()
在底層,正確的操作會自動執行,計算過程完全透明地繼續進行。
架構支撐:CUDA Tile IR
這次更新不僅僅是語法糖,英偉達引入了一套全新的中間表示——CUDATile IR(Intermediate Representation)。
CUDA Tile IR引入了一套虛擬指令集,使得開發者能夠以瓦片操作的形式對硬件進行原生編程。
![]()
開發者可以編寫更高層級的代碼,這些代碼只需極少改動即可在多個世代的GPU上高效執行。
通過這種對比可以看出,CUDA Tile實際上是英偉達對AI編程范式的一次「降維打擊」——將復雜的硬件細節封裝在編譯器內部,只暴露算法邏輯。
![]()
在過去的CUDA版本中,C++始終是一等公民。
然而在CUDA 13.1中,英偉達極其罕見地首發推出了cuTile Python,而C++支持則被延后。
這一策略轉變深刻反映了AI開發生態的現狀:Python已經成為AI的通用語言。
在此之前,AI研究員如果想優化一個算子,不得不離開Python環境,學習復雜的C++和CUDA。
cuTile的出現旨在讓開發者留在Python環境中即可編寫高性能Kernel。
根據英偉達的技術博客,我們可以通過一個向量加法的例子來感受cuTile的變革。
傳統SIMT方式(偽代碼概念):
![]()
cuTile Python方式:
![]()
在這個例子中,開發者不需要知道GPU有多少個核心,也不需要知道Warp是什么。
ct.load和ct.store在底層可能會調用Blackwell架構最新的異步內存復制引擎,但這對開發者是透明的。
CUDA Tile對抗的是誰?
要回答「是否終結了護城河」,必須引入另一個變量:OpenAI Triton。
Triton是OpenAI為了擺脫對英偉達閉源庫(如cuDNN)的依賴而開發的開源語言。
Triton的核心理念與CUDA Tile驚人的一致:基于塊(Block-based)的編程。
![]()
這或許是CUDA此次更新的最大針對者。
![]()
分析了這么多,英偉達此次更新是否終結了CUDA的護城河,轉向瓦片架構是否使AI內核更易移植?
在社區中,更多的聲音指向如下結論。
![]()
英偉達代際間的移植性:這是CUDA Tile主要解決的問題。
從Hopper移植到Blackwell,甚至未來的Rubin,使用TileIR編寫的代碼將無縫運行且自動優化。
這一點上,移植性極大增強。
跨廠商的移植性:這是行業希望解決的問題(比如從英偉達移植到AMD MI300)。
這一點上,CUDATile幾乎沒有任何幫助,甚至讓移植變得更難。
![]()
Jim Keller本人一點不喜歡CUDA,稱CUDA為「沼澤」,意指其復雜性讓開發者深陷其中無法脫身。
綜上所述,英偉達并沒有拆除護城河,而是將護城河的墻修得更漂亮、更易于攀爬(進入),但在墻內構建了更舒適的迷宮(Tile IR生態),使得用戶更不愿意離開。
瓦片架構使AI內核在英偉達硬件之間極易移植,但在不同廠商硬件之間更難移植。
Jim Keller也許是對的,CUDA曾經是沼澤。
但英偉達剛剛在沼澤上鋪設了一條高速公路(CUDA Tile IR)。
而這條路,目前只通向英偉達的城堡。
參考資料:
https://x.com/jimkxa/status/1997732089480024498
https://developer.nvidia.com/blog/focus-on-your-algorithm-nvidia-cuda-tile-handles-the-hardware/
https://developer.nvidia.com/blog/nvidia-cuda-13-1-powers-next-gen-gpu-programming-with-nvidia-cuda-tile-and-performance-gains
https://developer.nvidia.com/blog/simplify-gpu-programming-with-nvidia-cuda-tile-in-python
https://www.tomshardware.com/tech-industry/artificial-intelligence/jim-keller-criticizes-nvidias-cuda-and-x86-cudas-a-swamp-not-a-moat-x86-was-a-swamp-too
秒追ASI
?點贊、轉發、在看一鍵三連?
點亮星標,鎖定新智元極速推送!





京公網安備 11011402013531號