GitHub Repo
Transformers 提出 Gemma 3n 修補,移除阻擋 CUDA Graph 的主機張量複製
Transformers 社群於 11 月 7 日提出修補,處理 Gemma 3n 在 AltUp 運算中反覆複製 CPU 張量、導致 CUDA Graph 擷取失敗的問題。作者回報圖擷取與 vLLM 服務測試通過,但提案尚未合併,實際吞吐量改善仍待量測。

Transformers 社群於 11 月 7 日提交 PR #50457,針對 Gemma 3n 文字模型的 AltUp 迴圈提出修改,排除 CUDA Graph 擷取障礙。截至 11 月 8 日查核時,提案仍處於開啟狀態,尚不能視為正式版本已修復。修補提案
問題回報使用 Transformers 5.23.0.dev0、PyTorch 2.11.0 與 NVIDIA L4。小型模型的前向運算可在 eager 模式執行,但放入 torch.cuda.graph 後,會因 CPU 與 CUDA 張量間的複製而失敗。作者另回報,vLLM 的 Transformers 模型後端在啟用編譯時,也遭遇 Gemma-3n-E2B-it 圖擷取錯誤,當時只能透過 enforce_eager=True 執行。重現案例
修補集中在兩處幅度下限運算:原本以 torch.maximum 比較計算結果與 CPU 上的 epsilon 張量,並在迴圈內將後者搬到目標裝置;提案改用 new_magnitude.clamp(min=1e-5)。作者回報,此修改消除了測試中每次前向運算的六次同步複製,並在 CPU、CUDA 的三種浮點精度下維持相同輸出。實作與驗證說明
這類改動的價值在於恢復推論執行路徑。PyTorch 文件說明,CUDA Graph 可預先記錄 GPU 工作,再以單次啟動重播,減少 Python、C++ 與驅動層的派送成本;但擷取期間禁止讓 CPU 與 GPU 同步的操作。因此,即使只是數值穩定用途的小常數,裝置管理方式仍可能阻斷整段圖擷取。CUDA Graph 原理與限制
部署端應先確認是否使用 Transformers 模型後端;vLLM 官方提供 --model-impl transformers 選項,也可檢查載入模型的型別。後續值得追蹤的是提案合併、套件收錄,以及實際批次與序列長度下的延遲測試。作者回報的測試通過支持修補方向,但尚未提供吞吐量基準,不能直接推算服務加速幅度。vLLM 後端文件