DeepSeek v3.2有一個新改動,在論文裡完全沒提,只在官方公告中出現一次,卻引起牆裂關注。
開源TileLang版本算子,其受關注程度甚至超過新稀疏注意力機制DSA,從畫線轉發的數量就可以看出來。
海外社區也注意到DeepSeek使用了它而不是OpenAI開發的Triton語言。
有接觸過的開發者感嘆TileLang是一種非常優雅的語言,只需不到100行程式碼就能寫出比Flash Attention 2原版快30%的注意力實現。
那麼什麼是TileLang,又為何引人矚目?
首先,TileLang是一種專門用來開發GPU核心的領域專用語言,性能上可以對標輝達CUDA,DeepSeek官方推薦使用此版本做實驗,在方便偵錯和快速迭代上有優勢。
更重要的是,TileLang與國產算力生態適配,連華為昇騰都要在第一時間公告對TileLang的支援。
在幾周前的華為全聯接大會2025的開發者日上,TileLang團隊成員董宇騏就介紹了TileLang實現FlashAttention算子開發,程式碼量從500+行減少至80行,並保持了與官方版本持平的性能。
此外TileLang團隊成員王磊和沐曦積體電路的高級總監董兆華也在同一個圓桌沙龍上出現過,討論了沐曦GPU與TileLang的適配。
DeepSeek與TileLang第一次同框亮相,其實是在6月的北京智元大會。
在DeepSeek實習過的北大博士袁境陽,在報告中就提到“TileLang的算子實現會更快一點”。
TileLang的發起人之一,北大博士研究生王磊當時還專門發帖感謝DeepSeek嘗試他們的語言。
TileLang由北大團隊主導開發,核心人物除了王磊、董宇騏,還有北大電腦學院的副研究員、博士生導師楊智。
2025年1月,TileLang在GitHub上正式開源,至今已獲得1.9k標星。
簡單來說,Tile語言 ( tile-lang ) 是一種簡潔的領域專用語言,旨在簡化高性能 GPU/CPU 核心的開發。tile-lang採用Python式語法,並在TVM之上建構底層編譯器基礎架構,使開發者能夠專注於提高生產力,而無需犧牲實現最佳性能所需的底層最佳化。
王磊曾在7月HyperAI超神經主辦的Meet AI Compiler技術沙龍分享TileLang的核心設計理念:
將調度空間(包括執行緒繫結、記憶體佈局、張量化和流水線等)與資料流解耦,並將其封裝為一組可自訂的註解和原語。這種方法允許使用者專注於核心的資料流本身,而將大部分最佳化工作交給編譯器完成。
TileLang將“Tile”作為程式設計模型的核心概念,通過顯式的Tile抽象,讓開發者能夠直觀地控制資料在全域記憶體、共用記憶體和暫存器之間的流動。
TileLang提供了三個不同層次的程式設計介面,滿足不同水平開發者的需求。
初學者可以使用硬體無關的高層介面,專注於演算法邏輯而不必關心底層細節。
有經驗的開發者可以使用ile Library,這裡包含了各種針對不同硬體架構最佳化過的預定義操作。
對於追求極致性能的專家使用者,TileLang還提供了執行緒原語等級的控制,允許他們直接操作執行緒同步、記憶體合併等底層特性。
DeepSeek顯然就屬於追求極致性能的專家使用者了,根據v3.2公告的說法,在早期DeepSeek團隊使用TileLang快速開發原型,之後用更底層的方法進一步最佳化性能。
v3.2論文中提到在核心層面共享k-v提升計算效率,讓DSA的閃電索引器機制(lightning indexer)運行速度遠超傳統實現。
在TileLang的文件中也有相關的技術介紹,在計算過程中快取中間資料,比全域記憶體快得多。
更早之前,在DeepSeek連續一周發佈開放原始碼庫的第一天,王磊就曾向DeepSeek團隊推薦TileLang語言。
後來TileLang也以DeepSeek在這天發佈的FlashMLA核心作為評測基準,在H100上的MLA解碼速度,TileLang編寫的核心做到與FlashMLA相當。
在最新的DeepSeek v3.2發佈之後,王磊也發帖致敬DeepSeek敢於使用一門新的程式語言來開發核心產品。
並且DeepSeek v3.2也驗證了TileLang確實可以用來訓練模型。 (量子位)