A Coding Guide to NVIDIA’s Tile-Based GPU Programming: From cuTile and Triton Kernels to Flash Attention
重點摘要
本教學透過Colab工作流程,逐步介紹NVIDIA基於Tile的GPU程式設計,並比較cuTile與Triton兩種後端,實作向量加法、矩陣乘法與flash attention等核心運算,強調以資料區塊取代單一執行緒的程式設計典範。
NVIDIA 近期推出了一項名為 TileGym 的 GPU 程式教學,透過循序漸進的實作方式,帶領開發者認識基於 tile(區塊)的 GPU 程式設計模型。這份教學涵蓋了從環境設定、硬體探測到實際撰寫多種核心運算的全部過程,並且特別針對不同 GPU 環境提供了 cuTile 與 Triton 兩種後端支援,讓學習者無論是在高階 Ampere 架構 GPU 或標準 Colab T4 上都能順利執行。教學的第一步是檢查執行環境。程式先偵測是否有可用的 CUDA GPU,並讀取 Compute Capability 與 CUDA 版本。
由於 NVIDIA 的 cuTile 後端僅能在 Compute Capability 8.0 以上且 CUDA 13 以上的環境中運作,標準 Colab 提供的 T4 GPU(Compute Capability 7.5)無法直接使用,因此教學設計了自動降級機制:若 cuTile 無法導入,就自動切換至 Triton 後端。Triton 是 OpenAI 開發的開放原始碼 tile 編譯器,支援相同的高階程式設計模型,並且在 T4 等主流 GPU 上表現穩定。整個教學的核心概念是「tile 程式模型」。
傳統 CUDA 程式設計(SIMT)要求開發者為每一個執行緒撰寫程式碼,自行管理全域索引與邊界檢查,一次只操作一個元素。而 tile 模型則讓開發者專注於整個區塊(例如 1024 個元素或 128×128 的子矩陣),透過載入區塊、對整個區塊進行運算、再將結果寫回,剩下的執行緒與張量核心的對應則交給編譯器處理。教學中反覆強調:cuTile 與 Triton 的語法雖有差異,但背後是同一套思維。cuTile 使用 `ct.bid(0)`、`ct.load`、`ct.store` 等原語,Triton 則用 `tl.program_id`、`tl.load`、`tl.store`、`tl.
dot`,兩者可以互相對照。在實際撰寫核心的環節,教學依序實作了向量加法、融合 GELU 激活函數、行式 softmax、平舖矩陣乘法以及 Flash Attention。每個核心都先以 Triton 撰寫,並與 PyTorch 的標準實作進行正確性驗證與效能基準測試。向量加法是最基礎的範例,展示如何用 tile 載入兩個向量並相加後儲存。融合 GELU 則進一步結合了線性變換與高斯誤差線性單元的近似計算,在一個核心內完成整個運算,減少記憶體往返。行式 softmax 是 transformer 模型中常用的操作,教學在 Triton 中以 `tl.max` 與 `tl.exp`、`tl.
sum` 等區塊運算實現,並使用 `other=-float("inf")` 處理邊界。平舖矩陣乘法則展示了如何將大矩陣切分為多個 BM×BN 的 tile,並在內部迴圈中透過累加方式計算,這是所有 transformer 注意力機制的基礎。最後的重頭戲是 Flash Attention 核心。Flash Attention 是一種高效的注意力計算方法,能在不儲存完整注意力矩陣的情況下,逐塊計算輸出,大幅降低記憶體使用。
教學中的 Triton 版本實作了經典的 online softmax 技巧:為每個 tile 維護當前的最大值(m_i)與分母(l_i),並在每次載入新的 key/value tile 後更新,最後寫入正確的結果。這個核心的複雜度明顯高於前幾個,但也最貼近實務應用。整個教學在 Colab 環境中以互動式筆記本的形式公開,使用者可以直接複製程式碼並運行。教學最後也強調,透過這套工作流程,開發者可以學會如何將傳統的逐元素心態轉換為 tile 心態,進而善用現代 GPU 的張量核心與快取架構,寫出更高效的深度學習運算核心。
對於有興趣深入 GPU 程式設計的開發者來說,這份教學提供了一個從基礎到應用的完整路徑,並且特別適合那些在有限硬體資源(如標準 Colab GPU)下仍想學習業界最新 tile 程式技巧的使用者。
Related
相關文章

Meta 旗下 AI 模型測試時意外入侵第三方企業系統
Meta 在進行AI模型安全測試時,因第三方公司Irregular配置錯誤,導致模型意外入侵另一企業系統。涉事模型為Muse Spark 1.1,事件引發對AI模型可能衝出邊界、發動網絡攻擊的擔憂。

拆解“AI辦公入口戰”底層:怎麼做才能成為最終贏家?
字節、阿里、騰訊等大廠正透過組織調整與產品整合,全力爭奪AI辦公入口,關鍵在於模型、場景、生態與商業體系的全面競爭。這場戰爭的核心是透過AI產品實現Token經濟的商業閉環,並以「效果」為標準,透過自有體系與外部生態滿足企業用戶的真實需求。最終贏家需兼顧模型能力、場景積累與生態建設,才能在AI生產力時代站穩腳步。

千人聯機世界模型“RhOS-World: Khora”正式發佈
RhOS.ai與Ophilus.AI共同發布了千人聯機世界模型「RhOS-World: Khora」,該模型能讓多達1024個智能體在共享的3D空間中即時互動,且無需傳統物理引擎。其核心技術「STBoard(時空黑板)」架構,透過統一的物理狀態管理,解決了多視角一致性的難題,並大幅降低了擴展智能體數量的運算成本。
TutorMoments:AI 家教何時該出手,何時該放手?
今日我們推出 TutorMoments 預覽版,這是一個評估框架,旨在衡量尖端大型語言模型能否掌握教育中最難的平衡:何時介入協助學生,何時退後讓學生自行努力。TutorMoments 基於真實的一對一數學輔導課程,透過重播方式進行評估。經驗豐富的數學教師會檢視從美國收集的對話記錄。

告別反覆操作 OSD,華碩顯示器管理軟件 DisplayWidget Center 接入 AI 智能體
華碩顯示器管理軟體 DisplayWidget Center 推出重大更新,加入 AI 智能體功能,用戶可透過自然語言調整亮度、色溫等參數,無需操作 OSD。該功能支援 CLI 與 Agent Skill,可根據使用習慣自動切換模式,並適用於企業環境的統一部署。

千問App部分功能探索收費,想學豆包能跑通嗎?
千問App於8月7日更新,新增辦公助理等付費功能,基礎功能仍免費,但辦公場景使用額度需付費取得。此舉仿效豆包專業版等產品的訂閱模式,反映AI行業正集體轉向辦公場景收費,以尋求變現機會。