Designing High-Performance GPU Kernels with TileLang: Tensor-Core GEMM, Fused Softmax, FlashAttention, and Autotuning
重點摘要
本教學介紹如何使用TileLang這個高階Python領域專用語言,透過TVM設計與編譯高效能GPU核心,涵蓋向量加法、張量核心矩陣乘法、融合Softmax與FlashAttention等實作。過程中直接操作TileLang的共享記憶體區塊、暫存器片段、管線迴圈等抽象,並讓編譯器管理執行緒映射與低層CUDA指令生成,最後與PyTorch及cuBLAS基準比較,並使用自動調優找出架構相依的核心配置。
TileLang 是一個基於 TVM 的高層次 Python 領域特定語言(DSL),旨在幫助開發者輕鬆設計與編譯出高效能的 GPU 核心。在最新的技術教學中,研究團隊逐步展示了如何透過 TileLang 實作從簡單的向量加法、張量核心矩陣乘法,到融合 Softmax 與 FlashAttention 等複雜運算,並透過自動調校(autotuning)找出最適合硬體架構的配置,讓開發者無需手動撰寫低階 CUDA 程式碼即可達到接近商業函式庫的效能。 教學首先在 Google Colab 環境中驗證 CUDA 可用性,並安裝 TileLang 及其依賴的 TVM。為了公平比較,團隊建立了可重複使用的基準測試工具,包含基於 CUDA 事件的延遲測量與相對誤差數值驗證,所有測試皆以 PyTorch 與 cuBLAS 作為對照組。第一個入門範例是向量加法:開發者只需定義一個簡單的 `T.Kernel` 與 `T.Parallel` 迴圈,TileLang 就能自動產生對應的 CUDA 核心。在 2²² 個元素的向量測試中,TileLang 的吞吐量與 PyTorch 的原生加法幾乎相同,因為兩者都受限於記憶體頻寬,而 TileLang 僅用約 20 行 Python 就達成了等效結果。 進入更重要的張量核心矩陣乘法(GEMM)時,TileLang 的優勢更加明顯。利用 `T.alloc_shared` 分配共享記憶體區塊、`T.alloc_fragment` 建立暫存器片段,並以 `T.Pipelined` 實現資料預取管線化迴圈。在 2048×2048 的 FP16 矩陣乘法中,TileLang 產生的核心可自動使用 `mma.sync`、`wgmma`、`ldmatrix` 和 `cp.async` 等底層 Tensor Core 指令,效能達到 cuBLAS 的 90% 以上。教學中也展示了如何透過 `get_kernel_source()` 直接檢視編譯器生成的 CUDA 原始碼,讓開發者理解高層抽象如何對映到硬體指令。 為了追求最佳效能,手動調整排程(schedule)是 GPU 程式設計的常見挑戰。TileLang 允許開發者以極簡參數改變 tile 大小、管線階段數、執行緒數量與是否啟用 swizzle 記憶體佈局。教學中測試了六組不同配置,從 64×64×32 到 128×256×32,並自動跳過超出共享記憶體預算的組合。結果顯示,較大的 tile 與適當的管線階段數能顯著提升計算吞吐量,而 swizzle 則有助於減少 bank conflict。這項實驗證明了 TileLang 在表達力與控制力之間的平衡:開發者只需要指定高層策略,編譯器就負責處理執行緒映射、同步與向量化。 然而,手動窮舉所有可能的組合並不實際,因此 TileLang 整合了自動調校引擎。教學後段引入 autotuning,能夠針對特定 GPU 架構自動搜尋最佳 kernel 配置,包含 tile 維度、管線深度與執行緒數量。這項功能大幅降低了調校時間,並能產出接近硬體極限的核心。團隊以相同的 GEMM 問題進行自動調校,最終配置在測試的 GPU 上達到了與手動最佳配置幾乎相同的效能,證明自動化搜尋足以取代繁複的手工調整。 除了單純的 GEMM,TileLang 也支援更進階的融合運算,例如將歸一化(Softmax)與矩陣乘法合併在同一個 kernel 中。教學中展示了如何在 GEMM 的 epilogue 階段直接對結果進行 row-wise Softmax,避免將中間結果寫回全域記憶體,減少頻寬消耗。這類 fused kernel 在現代 Transformer 模型中尤其重要,因為 Attention 機制需要多次執行 Softmax 與矩陣乘法。TileLang 透過 `T.reduce` 與 `T.Parallel` 等原語,讓開發者能以直覺的方式描述逐行歸約操作,編譯器則自動產生對應的 CUDA 代碼,實現高效融合。 最引人注目的是,教學更進一步實作了 FlashAttention——一種專為長序列注意力設計的 IO 感知演算法。FlashAttention 透過分塊(tiling)與重新計算(recomputation)減少 GPU 高頻寬記憶體(HBM)的讀寫,大幅提升訓練與推論速度。TileLang 支援以高層抽象描述這些複雜的分塊策略與管線化資料流,讓開發者不必手動管理 shared memory 的分配與同步。團隊實作的 FlashAttention 在數值正確性上通過測試,效能也與 PyTorch 的原生實作相當,展示了 TileLang 在處理最新研究演算法時的靈活度。 整體而言,TileLang 提供了一條從原型到高效能部署的捷徑。開發者可以用 Python 撰寫簡潔的演算法描述,再透過編譯器的自動優化獲得接近手寫 CUDA 的效能。教學中每個步驟都配有可執行的 Colab 筆記,讀者可以直接在瀏覽器中重現所有實驗。對於希望深入 GPU 程式設計但又不想被底層細節淹沒的工程師與研究者來說,TileLang 無疑是一個極具潛力的工具。隨著 AI 模型對運算效率的要求不斷提升,這類高層次編譯框架將在最佳化基礎設施中扮演越來越重要的角色。
Related
相關文章

賽馬結束,大廠各尋Agent主心骨
賽馬結束,大廠各尋Agent主心骨市象2026.07.25 19:11 · 來自河南全文4460字00:00 / 13:18大廠Agent,不再養蠱。文 | 市象重複造輪時代過了。“之前(智能體)最大風險是押錯方向,現在是重複建設。”一位接近AI行業人士向「市象」表示:“資金和算力太大了,賽馬也不可能是長久之計。”過去,國內大廠面對龍蝦熱潮大幹快上,將一批換殼龍蝦拋入市場。如今,面對滿地“龍蝦殼”,大廠準備收網。7月2日,阿里巴巴宣佈融合QoderWork、悟空與MuleRun,升級為全新產品千問辦公,由釘釘CEO陳宇森統管。7月20日,騰訊將QClaw產品中心的相關業務和團隊,調整至WorkBuddy所屬的雲產品六部。這兩場變動,也成了龍蝦潮的收尾。大廠辦公智能體矩陣,是在OpenClaw火箭上升後的恐慌應激反應。今年3月,OpenClaw火速登頂GitHub歷史星標榜後,騰訊Qclaw、字節火山ArkClaw、阿里JVS Claw迅速跟上。短時間內,基於OpenClaw封裝或兼容的套殼龍蝦被批量產出。倉促上線的代價是,一家公司內各產品功能高度重疊,均集中在白領辦公場景,只是入口和流量不同。比如MuleRun從阿里雲切入,QoderWork從桌面端切入,悟空從釘釘協同切入。在騰訊,WorkBuddy和Qclaw一個是騰訊雲做的,一個是騰訊電腦管家做的,用戶自己都難以分清。在字節,內部做了至少四款智能體——飛書妙搭OpenClaw、火山引擎ArkClaw、釦子OpenClaw、Trae Work,多個團隊分別對OpenClaw產品化改裝。多產品線賽馬,優點是想法多,創意多,缺點是資源太分散,只適合防守,打不了大仗。OpenClaw曾用三天迭代三個版本,以一個退休程序員的週末項目擊穿了大廠防線。騰訊WorkBuddy與Qclaw的整合,阿里整合千問辦公,本質上都帶有止損意味。
納德拉:微軟自研 MAI 模型在 Excel 任務表現與 GPT-5.6 相當
科技媒體 firstpost 於 7 月 23 日發佈博文,報道稱微軟首席執行官薩提亞 · 納德拉(Satya Nadella)表示,微軟自研 MAI 系列模型在許多應用場景中超越了前沿 AI,而且能降低企業部署 AI 成本。

阿里:Qoder Mobile 移動端 App 安卓、iOS、鴻蒙三大版本同步上線,功能層面完全一致
阿里宣布Qoder Mobile App正式上線,同步推出iOS、Android與鴻蒙三大版本,功能層面完全一致。用戶可透過手機遠端控制電腦端的AI Agent,即時查看進度、審批操作或下達指令,未來還將支援程式碼檢視與雲端運行等進階功能。

賦能精準鹼基編輯:我國科學家建立基於 AlphaFold3 接觸概率的 AI 框架 ContactSeek
北京大學與華東師範大學團隊基於 AlphaFold3 的接觸概率,開發出 AI 框架 ContactSeek,能系統識別影響鹼基編輯特異性的關鍵氨基酸,進而提升編輯精準度並降低脫靶效應。相關論文已發表於《自然》期刊。

黃仁勳站在 AI 產業的十字路口吶喊:力挺開源
# 黃仁勳站在 AI 產業的十字路口吶喊:力挺開源 7月24日,英偉達創始人兼CEO黃仁勳做了一件他從未做過的事情——在社交平台X上發布了人生第一條帖子。沒有皮衣照,沒有新產品預告,甚至沒有任何寒暄。他直接甩出了一封由25家頂級科技公司聯名簽署的公開信,標題為「開放權重與美國AI領導力」。配文擲地有聲:「AI將改變每一個行業、驅動每一家公司、被每一個國家所構建。世界需要前沿的閉源模型,也需要前沿的開源模型。」 這條推文迅速引爆了全球科技圈。截至發稿,該帖子已獲得超過2500萬次瀏覽和11萬次點讚。

全新統一流式架構,Vivix靈動時刻正式發佈首個實時互動模型
這篇消息聚焦「全新統一流式架構,Vivix靈動時刻正式發佈首個實時互動模型」。目前站內已移除先前混入的模型思考或安全判斷文字,並保留來源可確認的主題供讀者追蹤。