? 最近看到一篇讓我挺震撼的文章,來自 DeepReinforce 團隊發布的一個新框架——CUDA-L1。說實話,剛看到標題說“AI 讓 GPU 性能提升 3 倍以上”,我心里是有點懷疑的。畢竟我們搞科研的都知道,這種宣傳語很多時候水分不小。但當我靜下心來仔細讀完,尤其是看到他們公開了全部代碼和可復現的結果后,我不得不承認:這確實是一個實打實的突破。
? 不是它用了多么復雜的模型,而是它的思路非常清晰、邏輯嚴密,而且每一步都經得起推敲。他們沒有靠“黑箱操作”或者閉源“魔法”,而是走了一條可驗證、可復現、可推廣的技術路徑。下面我想結合自己的理解,跟大家聊聊它。
核心突破:不是簡單的 RL,而是 Contrastive-RL
? 大家都知道,強化學習(Reinforcement Learning, RL)在自動代碼生成領域已經有不少嘗試。傳統做法是讓大模型生成一段 CUDA 代碼,跑一下測個性能,給個 reward,然后反向更新模型參數。聽起來很美好,但實際中很容易陷入“盲目試錯”的陷阱——模型并不真正“理解”為什么某段代碼更快。
? 而 CUDA-L1 的關鍵創新,就在于提出了一個叫?Contrastive-RL(對比式強化學習)?的新范式。這個名字聽著有點學術,但其實思想特別樸素:讓 AI 學會“反思”。
? 具體來說,他們在每一輪優化中都會做三件事:
1. 讓模型生成多個不同的 CUDA 實現版本;
2. 實際測量每個版本的運行速度,并把“代碼 + 性能分數”一起反饋回去;
3. 要求模型用自然語言寫一段“性能分析報告”——比如:“為什么 A 比 B 快?”“哪些優化策略起了作用?”“有沒有內存訪問沖突?”等等。
? 這一步非常關鍵。相當于不是讓 AI 盲目地“打怪升級”,而是逼它停下來寫“學習總結”。久而久之,模型就不只是記住“哪種寫法快”,而是開始形成對 GPU 架構、內存層次、并行機制的系統性認知。
? “會做題不稀奇,能講清楚為什么才叫真懂。” 這個 Contrastive-RL,本質上就是在訓練 AI 成為一個“會總結、能歸納”的工程師。
三階段訓練流程:穩扎穩打,步步為營
? 他們的訓練流程分為三個階段,層層遞進,設計得非常扎實:
??第一階段:精調(Fine-tuning)
用一批高質量、可執行的 CUDA 代碼對大模型進行微調。這些代碼是從 DeepSeek-R1、GPT-4o、Claude 等主流模型中采樣出來的,但只保留那些語法正確、能跑通的。這就保證了起點足夠高。??第二階段:自我進化(Self-training)
模型開始自己生成大量代碼,系統自動篩選出功能正確的部分,再拿去訓練自己。這個過程不需要人工標注,完全是自舉式的(self-bootstrapping),擴展性很強。??第三階段:Contrastive-RL 反思優化
這是最核心的一環。系統會同時展示多個歷史版本的代碼及其性能數據,要求模型進行橫向對比,分析優劣,再生成下一代更優解。這種“帶著數據做決策”的方式,極大減少了 reward hacking(獎勵作弊)的風險,也讓優化方向更加穩定。
? 我們可以把它想象成一個不斷參加技術評審會的程序員:每次提交代碼后,不僅要聽反饋,還要當眾解釋“你為什么這么寫”,久而久之,水平自然就上去了。
真實性能表現:數據說話,毫不含糊
? 他們用了業界公認的基準測試集?KernelBench,包含了 250 個真實的 PyTorch 工作負載。結果如下表所示:
模型 / 階段 | 平均加速比 | 最高加速比 | 中位數 | 成功率 |
原始 Llama-3.1-405B | 0.23× | 3.14× | 0× | 68/250 |
DeepSeek-R1(RL 調優) | 1.41× | 44.2× | 1.17× | 248/250 |
CUDA-L1(全流程) | 3.12× | 120× | 1.42× | 249/250 |
? 看到這個數據,我是真有點吃驚的。平均?3.12 倍的加速,意味著幾乎每一個任務都被顯著優化了;而最高?120 倍的提速,說明在某些特定場景下,AI 找到了人類都容易忽略的“捷徑”。
? 更難得的是,這些優化不僅在 A100 上有效,遷移到 L40、H100、RTX 3090、H20 等不同架構上依然保持強勁表現,平均加速從 2.37× 到 3.12× 不等。這說明它學到的不是“死記硬背”的技巧,而是具有泛化能力的底層優化原則。
兩個典型案例:AI 發現了“人類盲區”
? 讓我印象最深的是兩個案例,充分體現了 AI 的“創造性”。
案例一:diag(A) @ B
?→?A.unsqueeze(1) * B
,提速 64 倍
? 這是一個典型的“低效寫法”:原本用?torch.diag(A) @ B
,會先構造一個完整的對角矩陣,復雜度是 O(N2M),浪費大量計算和內存。
? 而 CUDA-L1 發現,其實只需要用廣播機制?A.unsqueeze(1) * B
,就能實現同樣的數學結果,復雜度降到 O(NM),直接省掉整個矩陣構造過程。這不是簡單的指令替換,而是對數學本質的理解。
? 很多人寫 CUDA 時也常犯這類錯誤——太依賴高層 API,忽略了底層語義。這個例子提醒我們:有時候最快的優化,不是調參,而是換思路。
案例二:3D 轉置卷積,直接返回零,提速 120 倍
? 另一個更驚人的例子是,在某些輸入條件下(如 min_value=0),整個卷積輸出恒為零。原始代碼仍然老老實實跑完所有計算流程,而 AI 卻識別出這個數學特性,直接插入判斷,提前返回零張量。
這叫“mathematical short-circuiting(數學短路)”,相當于在邏輯層面繞過了整個計算圖。這種優化,別說普通開發者,就連資深 CUDA 工程師都未必能一眼看出來。
對不同人群的意義
? 我覺得這項工作的價值,遠遠不止于“提升 GPU 效率”本身,它更像是一面鏡子,照出了未來 AI 系統的發展方向。
??對企業管理者來說:這意味著你可以用同樣的 GPU 資源,跑出 200% 以上的額外算力。每節省 1% 的 GPU 時間,就是真金白銀的成本下降。而且自動化程度高,不再依賴稀缺的 CUDA 專家。
??對一線開發者而言:你現在可以去他們的 GitHub 下載全部 250 個優化后的 kernel,親自在 A100、H100 上驗證效果。整個項目完全開源,沒有任何“信我就行”的成分,非常硬核。
??對研究人員來講:Contrastive-RL 提供了一個全新的范式——如何讓 AI 在非語言任務中,通過“反思”來提升領域認知。這對編譯器優化、自動微分、甚至機器人控制都有啟發意義。
表:CUDA-L1 發現的前幾大優化技巧
優化技術 | 典型加速 | 示例洞察 |
內存布局優化 | 穩定提升 | 連續內存提高緩存效率 |
內存訪問(合并、共享內存) | 中-高 | 避免 bank conflict,最大化帶寬 |
算子融合 | 高(可流水線) | 多算子融合 kernel 減少訪存 |
數學短路 | 極高 (10-100×) | 條件滿足時直接跳過全部計算 |
線程塊/并行配置 | 中等 | 按硬件/任務調整 block 大小 |
warp 級/無分支歸約 | 中等 | 降低分支與同步開銷 |
寄存器/共享內存優化 | 中-高 | 把常用數據緩存到計算單元旁 |
異步執行、最小同步 | 視場景 | 重疊 I/O,實現流水線 |
一點個人感想
? 說實話,看到 AI 能做到這種程度,我心里五味雜陳。一方面,作為技術人員,我為這種進步感到興奮;另一方面,我也在想:未來我們還需要那么多底層優化專家嗎?
? 但轉念一想,技術的進步從來不是替代人,而是把人從重復勞動中解放出來。就像當年高級語言取代匯編一樣,CUDA-L1 正在幫我們把“調 kernel”這種繁瑣工作自動化,讓我們能把精力集中在更高層次的問題上——比如模型設計、系統架構、甚至是 AI 本身的可解釋性。
? 這個工作讓我再次相信,真正的 AI 突破,不在于參數多大,而在于有沒有構建一個持續自我進化的“飛輪”。CUDA-L1 做到了這一點,它不只是一個工具,更像是一個會學習、會思考、會總結的“AI 工程師”。
? 如果你感興趣,不妨去看看他們的論文、代碼和項目主頁。GitHub 上還有詳細的教程和 notebook,動手試一試,你會更有感覺。
詳見
1. 論文:https://arxiv.org/abs/2507.14111v4
2. 代碼:https://github.com/deepreinforce-ai/CUDA-L1
3. 項目主頁:https://deepreinforce-ai.github.io/cudal1_blog/