“20年來最大更新”,輝達CUDA帶來了什麼?

2025 年 12 月,NVIDIA 推出 CUDA 13.1,此次更新被官方定位為“自 2006 年 CUDA 平台誕生以來最大、最全面的升級”。其核心亮點之一,是引入了新的程式設計模型 CUDA Tile。這個變化,有可能不僅僅是一項技術迭代,而是標誌著 GPU 程式設計範式邁入一個新的階段。

CUDA 13.1 + CUDA Tile:到底帶來了什麼新東西?

CUDA Tile 是一種基於 tile(瓦片、資料區塊)的 GPU 程式設計模型。與傳統的 SIMT(single-instruction, multiple-thread,多線程單指令流)方式不同,Tile 程式設計允許開發者將資料組織為tile (例如矩陣塊、張量塊、資料區塊),然後對這些 tile 進行操作,由編譯器和執行階段負責將它們對應到底層線程、記憶體佈局、專用硬體等資源。換句話說,開發者只需專注對塊做什麼計算,無需關心那個線程做那一部分、怎樣同步的問題。

為了支援 Tile,NVIDIA 在 CUDA 13.1 中引入了虛擬指令集 (Tile IR),並配套提供 cuTile。這是一個允許用高級語言編寫 tile-based kernel 的工具,通過 cuTile,開發者可以用熟悉的 Python 編寫 GPU kernel,從而極大降低 GPU 程式設計的門檻。

根據官方描述,Tile 程式設計並不是要取代 SIMT,而是作為一種並存或可選的程式設計路徑。也就是說,開發者根據需求,可以繼續使用傳統 SIMT,也可以在適合場景下使用 Tile。

CUDA 13.1 除了 Tile,還對執行階段(runtime)和工具鏈進行了升級,例如對 GPU 資源調度與管理機制進行了增強,使 GPU 的多工、並行、異構任務支援更靈活可靠。

官方同時對數學計算庫(如矩陣、張量庫)與底層支援的相容性進行了最佳化,以更好支援未來 GPU 特性(例如 tensor core、多級快取、異構資源分配等)。由此看來,這次更新不僅是對程式設計模型的改變,也為建構新一代高層、跨架構 GPU 的計算庫、框架和DSL 奠定了基礎。

綜合來看,CUDA 13.1 + CUDA Tile 的意義,不僅在於新增一個功能或對性能進行最佳化,而更在於為 GPU 程式設計提供了一個新的、更高層、更抽象、更便捷,且可維護和可移植的選項。

GPU 越來越複雜,手動管理變得不足夠

隨著 GPU 架構不斷演進,引入越來越多專用硬體(例如 tensor core、混合精度加速、多級快取與記憶體層次、異構資源、多流或多工支援等),底層硬體複雜度大幅增加。對開發者而言,手動管理線程、同步、記憶體佈局、調度、硬體相容性等負擔越來越重。傳統 SIMT 模型雖然靈活,但對高性能、可移植、可維護的要求而言,其複雜性和維護成本日益凸顯。

在這種背景下,Tile 程式設計所引入的高層抽象、由系統負責的資來源對應、調度、硬體利用,恰好切中了現實需求。對於AI、大規模矩陣、張量計算、科學計算、深度學習等領域,非常具有吸引力。NVIDIA 官方也明確指出,Tile 的設計初衷是為了幫助建立適用於當前和未來 GPU 的軟體。

借助 cuTile (Python DSL),許多過去因為不擅長 CUDA C、對底層 GPU 程式設計不熟悉的資料科學家、研究者,也可能開始編寫 GPU 加速程式碼。對於深度學習、科學計算、AI 團隊或高校研究機構來說,這意味著 GPU 加速不再只屬於少數 GPU 專家核心團隊,而可能被更多人使用。此外,對於那些需要跨 GPU 架構的團隊來說,一次編寫、多代相容的可能性,將大大降低重構、最佳化和維護的成本

(來源:輝達)

同時,Tile 提供了一條新的 GPU 程式設計路徑。這條路徑不僅對單個項目或團隊有利,也可能促使整個 GPU 軟體生態走向更高層、更抽象、更通用、更易維護和跨架構相容。這種變化對未來 GPU 程式設計規範化、標準化以及廣泛應用具有潛在推動力。這次更新可能不僅僅是一個版本號的提升,而是 GPU 程式設計範式的一次質變。

從硬核到普惠的轉折點

在技術社區中,CUDA 13.1 的發佈引發了截然不同的兩種情緒,而這恰恰印證了這次更新的變革性。

對於資深的高性能計算(HPC)工程師而言,反應是複雜的。一方面,他們習慣了對每一個暫存器、每一塊共用記憶體(Shared Memory)的精細控制,CUDA Tile 這種將細節交給編譯器的做法,不可避免地引發了關於性能上限的討論。正如在 Reddit 和 Hacker News 上一些硬核開發者所擔憂的:“我們是否正在用極致的性能換取開發的便利性?”

然而,對於更廣泛的資料科學家和 AI 演算法工程師群體,這無疑是一個好消息。長期以來,將 PyTorch 或 TensorFlow 中的高層邏輯轉化為高效的 CUDA 核心程式碼,是一道難以踰越的技術鴻溝。cuTile Python 的出現,實際上是在填平這道鴻溝。它意味著開發者不再需要精通 C++ 和電腦體系結構,僅憑 Python 就能觸達 GPU 80% 甚至 90% 的理論性能。這種性能平權可能會引爆新一輪的 AI 算子創新。當編寫一個高效的 Attention 變體不再需要兩周的 C++ 偵錯,而只需一下午的 Python 指令碼時,創新的飛輪將轉得更快。

(來源:Shutterstock)

競爭格局的深層變化:從程式碼相容到架構抽象

在 CUDA 13.1 之前,競爭對手(如 AMD 的 ROCm 或 Intel 的 OneAPI)主要的追趕策略,是通過相容層(如 HIP)來轉譯現有的 CUDA 程式碼。這種策略主要基於 C++ 語法的相似性。

然而,CUDA Tile 的出現改變了這種競爭的維度。通過引入 Tile IR(虛擬指令集)和高層抽象,NVIDIA 實際上是在硬體和軟體之間增加了一個更厚的中間層。

當開發者開始習慣使用 Tile 程式設計模型,更多地關注資料區塊的邏輯而非底層線程調度,程式碼與底層硬體的解耦程度變得更高。這意味著,程式碼的執行效率將更多地依賴於編譯器如何理解和最佳化這些 Tile 操作。對於競爭對手而言,要支援這種新模式,僅僅做程式碼轉譯是不夠的,還需要建構一個同樣智能的編譯器來處理這些高層抽象,這無疑增加了技術對齊的難度,也客觀上提高了生態系統的粘性。

面向雲環境的演進:Green Contexts 的實際價值

除了程式設計模型,CUDA 13.1 在執行階段環境上的改進,特別是 Green Contexts 從驅動層走向執行階段 API,反映了 GPU 使用場景的結構性變化。

在 Blackwell 架構時代,GPU 已經從單純的加速卡轉變為資料中心的核心算力單元。隨著單卡算力(如 B200 系列)的大幅提升,對於許多單一任務來說,獨佔整塊 GPU 往往是一種資源浪費。

Green Contexts 允許開發者或系統管理員在執行階段更安全、更細粒度地劃分 GPU 資源(SM)。這在技術上解決了多工平行時的干擾問題,使得 GPU 能夠像 CPU 一樣,高效、穩定地同時處理多個使用者的任務。對於雲服務商和企業內部的算力調度來說,這直接提升了昂貴硬體的利用率和投資回報率。

新的挑戰:抽象化帶來的黑盒隱憂

當然,這種向高層抽象的演進也並非沒有代價。CUDA Tile 帶來的最大挑戰在於偵錯與性能最佳化的透明度降低。

在傳統的 SIMT 模式下,開發者清楚地知道每一行程式碼對應什麼指令,資料在暫存器和記憶體間如何移動。而在 Tile 模式下,編譯器接管了大量的資料佈局和對應工作。一旦性能不如預期,或者出現非功能性 Bug,開發者可能會發現很難像以前一樣精準定位問題。

雖然 NVIDIA 在 Nsight 工具鏈中增加了對 Tile 的支援,但如何讓開發者理解編譯器的最佳化邏輯,而不是面對一個無法干預的“黑盒”,將是這一新模式能否被資深開發者廣泛接受的關鍵。此外,這也意味著軟體性能將更加依賴於 NVIDIA 編譯器團隊的最佳化水平,而非開發者個人的微調能力。

CUDA 13.1 的發佈,本質上是 NVIDIA 應對硬體複雜度爆發的解決方案。通過 CUDA Tile,NVIDIA 試圖建立一種新的分工模式:開發者專注於高層的演算法邏輯與資料流,而將複雜的硬體適配工作交給編譯器和執行階段環境。

這不僅降低了高性能計算的門檻,也讓 CUDA 平台在異構計算和雲原生時代,具備了更強的適應性和生態掌控力。對於開發者而言,這或許意味著是時候調整思維習慣,從微觀的線程管理,轉向宏觀的資料區塊編排了。 (問芯)