NVIDIA 把 CUDA Tile 搬進 BASIC
NVIDIA 的 4 月 1 日文章把 CUDA Tile 接到 BASIC,拿 70 年代語言示範現代 GPU tile 編程。笑點很多,但背後的編譯器設計很認真。

NVIDIA 在 2026 年 4 月 1 日丟出一篇很會玩的文。主角是 cuTile BASIC。它把 CUDA 13.1 的 tile-based GPU 編程,包進 BASIC 外皮。
這梗很鬧,但不是純搞笑。文章裡的範例真的在講 tile、MMA、資料分塊。講白了,NVIDIA 想證明一件事:GPU 程式不必永遠綁死在 CUDA C++。
如果你寫過 kernel,就知道痛點在哪。你要管 thread、block、launch config,還要顧 memory access。cuTile BASIC 的意思很直接:把心力移到資料切塊,剩下交給編譯器。
這篇文章到底在秀什麼
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
核心其實是 CUDA Tile。它是 CUDA 13.1 裡的 tile-based programming model。開發者先描述資料怎麼切成 tile,再描述 tile 上要做什麼。

這種寫法很適合 GPU。因為很多工作本來就是矩陣、向量、分塊運算。你不用每次都手動算 thread index。你只要講清楚資料區塊,後面讓工具處理。
文章拿 BASIC 來示範,也不是亂選。BASIC 是很多人第一個學的語言。它有行號,也夠老派。NVIDIA 故意用它,來凸顯 tile IR 的語言無關性。
- CUDA Toolkit 13.1 是基礎版本。
- 文章提到的 GPU 需要 compute capability 8.x 到 12.x。
- 驅動需求是 R580 以上。
- Python 3.10 也在安裝清單裡。
- 套件是透過 pip 裝進去的。
BASIC 只是笑點,技術也是真的
文章最妙的地方,是它把懷舊梗和實作混在一起。你會看到 line number、老電腦、甚至像在寫學校作業的語氣。然後下一秒,它就拿出一段 vector add 程式。
那段程式很短。它用 TILE 和 BID 表達資料分塊。你不用手算每個 thread 的位置。這對看慣 CUDA C++ 的人來說,衝擊很大。
更有意思的是,這不是單純語法糖。它背後是 tile IR。也就是說,BASIC 只是前端之一。真正重要的是中間層可以接很多語言。
“CUDA Tile, introduced in CUDA 13.1, enables flexible tile-based GPU programming from any language.” — NVIDIA Technical Blog
矩陣乘法的例子更有感。文章用了 MMA,還寫出像 A(128, 32)、B(32, 128)、C(128, 128) 這種 tile 尺寸。這些數字不是裝飾。這就是 GPU 最常見的思考方式。
說真的,這種示範很聰明。因為它讓人一眼看懂。你不用先讀 200 行 kernel,才知道資料怎麼跑。對教學、原型、舊系統改造都很有用。
跟傳統 CUDA 比,差在哪
傳統 CUDA C++ 很強。這點沒人會嘴。你可以精準控制 thread mapping、shared memory、warp 行為。代價就是語法很吵,心智負擔也高。

cuTile BASIC 的路線完全不同。它把重點放在 tile。你先定義資料區塊,再定義區塊上的運算。編譯器去處理很多底層細節。
這種抽象有好處,也有代價。好處是可讀性高。代價是你少了一些手動調校空間。要榨乾最後幾個百分點效能,還是得回到更底層的工具。
- CUDA C++:你要自己管
threadIdx.x和blockIdx.x。 - cuTile BASIC:你直接對 tile 做運算。
- CUDA C++:launch geometry 要自己算。
- cuTile BASIC:很多配置交給 compiler 和 runtime。
- CUDA C++:適合極致調校。
- cuTile BASIC:適合教學、移植、快速驗證。
文章裡的測試數字也不是空話。vector add 跑 1,024 個元素。GEMM 則是 512x512 矩陣。結果還會檢查誤差,像 max difference 0.000012 這種值,代表它不是只做表面功夫。
我覺得這裡最重要的訊號,是 NVIDIA 在推一個共享後端。前端可以很多種。BASIC、Python、Julia、甚至別的 DSL,都有機會接上去。這比單一語言工具鏈更有彈性。
這跟其他方案比,位置在哪
如果拿來跟一般 GPU 生態比,cuTile BASIC 很像一種介於教學與正式工具之間的東西。它不像 CUDA C Programming Guide 那麼底層,也不像高階框架那麼黑盒。
對比 NVIDIA 的 GitHub 範例,你可以看出方向很清楚。NVIDIA 想把 tile 當成共通語言。前端可以換,資料切塊的邏輯不換。
這也讓人想到其他語言的 GPU 路線。像 Julia 社群就很愛這種高階表達方式。OraCore.dev 之前也寫過 cuTile.jl。那篇和這次 BASIC 的邏輯很像。
- 傳統 CUDA:控制力最強。
- cuTile BASIC:語法最短,讀起來最直白。
- Julia 方案:適合研究和數值運算。
- Python 方案:適合資料科學團隊。
- DSL 路線:適合特定領域工作負載。
如果你問我,這種設計最有價值的地方,不是 BASIC 本身。是它證明 tile backend 可以吃下奇怪前端。這代表未來很多舊語言,也可能找到 GPU 出口。
這對企業很實際。很多公司還留著老系統。不是每個團隊都能把 Fortran、BASIC 或自家 DSL 全部重寫。能接上 GPU,才是重點。
這件事放回產業脈絡看
GPU 編程這幾年一直在分層。底層是 CUDA、PTX、driver。上層則是各種框架、DSL、編譯器。大家都想少碰硬體細節。
這不是偷懶。是成本問題。開發者時間很貴。能少寫 300 行樣板碼,就少掉很多 bug。尤其是矩陣運算、推論、資料搬移這類工作。
所以 tile-based 編程很合理。它把運算單位從 thread 拉回資料。這跟現代 AI 和 HPC 的工作型態很合。很多模型本來就是大塊矩陣在跑。
我覺得 NVIDIA 這篇 April Fools 文,其實是在測風向。它一邊玩笑,一邊告訴大家:tile IR 不是玩具。它要變成平台。
這種做法也有市場意義。當工具鏈夠彈性,生態就比較容易長。開發者不一定愛 BASIC,但會在意「我能不能用熟悉的語言碰 GPU」。這才是重點。
我怎麼看這個梗
老實說,這篇很會寫。它的笑點夠老派,技術點也夠硬。不是那種只會丟梗圖的行銷文。它真的有 demo,也真的有數字。
如果你是 GPU 開發者,這篇值得看。不是因為 BASIC 很酷。是因為它提醒你,編譯器和 IR 可能比語言本身更重要。
接下來我會盯兩件事。第一,還會有哪些語言接上 tile backend。第二,這套模型在真實工作負載上,能不能少掉更多 boilerplate,又不犧牲太多效能。
講白了,這次的重點不是 BASIC。是 NVIDIA 在告訴大家:GPU 程式可以更像在描述資料,而不是在手刻座標。你如果還在維護老程式,現在就該想想,哪個模組最適合先試 tile 化。