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 平臺在異構計算和云原生時代,具備了更強的適應性和生態掌控力。對于開發者而言,這或許意味著是時候調整思維習慣,從微觀的線程管理,轉向宏觀的數據塊編排了。
參考文章:
1.https://developer.nvidia.com/blog/nvidia-cuda-13-1-powers-next-gen-gpu-programming-with-nvidia-cuda-tile-and-performance-gains/
2.https://github.com/NVIDIA/cutile-python
3.https://developer.nvidia.com/blog/simplify-gpu-programming-with-nvidia-cuda-tile-in-python/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.