🔥最新收集於 34m

AI 加速模型首日支援

AI 加速模型首日支援
PostLinkedIn
🔥閱讀原文: PyTorch Blog

💡了解 PyTorch 如何縮小快速模型發布與較慢編譯器支援之間的落差。

⚡ 30-Second TL;DR

有什麼變化

新模型架構的推出速度,可能快於成熟編譯堆疊提供支援的速度。

為什麼重要

若能有效運作,AI 輔助的模型支援流程可縮短模型發布與 PyTorch 最佳化執行之間的落差。這能幫助開發者更快採用新興模型,而不必等待大量人工編譯器整合工作完成。

下一步行動

在 PyTorch 編譯 CI 中建立 AI 輔助的模型支援流程原型,並衡量每種新模型架構所需的支援時間。

誰應關注:Developers & AI Engineers

關鍵要點

  • 新模型架構的推出速度,可能快於成熟編譯堆疊提供支援的速度。
  • PyTorch 正探索利用 AI 加速模型支援流程,降低人工工程工作量。
  • 更快的首日支援可提升 PyTorch 部署與編譯工作流程的可用性。

🧠 深度解析

背景與延伸:來自公開資料,非原文內容。引用 29 個來源。

🔑 增強重點摘要

  • PyTorch 2.0 引入了 torch.compile 作為核心 API,旨在透過即時 (JIT) 編譯來加速模型,同時保持 PyTorch 標誌性的 Eager 模式開發體驗,實現 30% 到 2 倍的訓練速度提升。
  • torch.compile 的底層技術棧包含 TorchDynamo、AOTAutograd、PrimTorch 和 TorchInductor,這些組件協同工作以實現圖捕獲、自動微分優化、算子規範化及高效代碼生成。
  • TorchDynamo 透過攔截 Python 字節碼並利用 Python 框架評估鉤子 (PEP 523) 將 PyTorch 操作安全地捕獲為 FX 圖,解決了 PyTorch 過去在圖捕獲方面的挑戰,並支援動態形狀和控制流。
  • TorchInductor 作為深度學習編譯器後端,負責將 TorchDynamo 捕獲的計算圖轉換為針對 GPU 和 CPU 優化的低級代碼,其中針對 NVIDIA GPU 會利用 OpenAI Triton 編譯器生成高效內核。
  • 除了訓練加速,PyTorch 也透過 AOTInductor 專門處理 torch.export 導出的模型,將其編譯成可在非 Python 環境中部署的共享庫,主要用於推論場景,提供健全性保證和嚴格的 IR 規範。
📊 競品分析▸ Show
框架/工具編譯策略/特點優化目標硬體支援
PyTorch (torch.compile)即時 (JIT) 編譯,透過 TorchDynamo 進行 Python 級圖捕獲,TorchInductor 後端生成優化代碼 (NVIDIA GPU 使用 Triton)。減少 Python 開銷、GPU 讀寫,提升訓練與推論性能,保持 Eager 模式靈活性。CPU, NVIDIA GPU, AMD GPU (透過 Triton/HIP)。
Apache TVM端到端深度學習編譯框架,支援多層 IR 設計 (Relay, TIR),提供基於機器學習的自動優化搜索 (Auto-Tuning) 機制。跨多種硬體後端 (CPU, GPU, FPGA, 微控制器) 的深度學習編譯優化,模型可攜性。CPU, GPU, 瀏覽器, 微控制器, FPGA, 各種機器學習加速晶片。
TensorFlow XLA(Accelerated Linear Algebra) 編譯器,將 TensorFlow 計算圖轉換為 XLA HLO 中間表示,進行圖級優化 (如算子融合、記憶體優化)。針對各種硬體 (CPU, GPU, TPU) 優化 TensorFlow 模型,提升執行效率。CPU, GPU, TPU。
NVIDIA TensorRT (透過 Torch-TensorRT)AI 推論庫,專為 NVIDIA GPU 優化模型,使用層融合、自動內核策略選擇等技術。最大化 NVIDIA GPU 上的推論性能,可將 PyTorch 推論速度提升高達 2.4 倍。NVIDIA GPU。
阿里云 Deepytorch Inference專有 AI 推理加速器,透過即時編譯技術對 PyTorch 模型進行推理優化,包括計算圖切割、執行層融合和高性能 OP 實現。顯著提升 PyTorch 模型在雲端環境下的推理性能,減少延遲。GPU (例如 A10 單卡機器)。

🛠️ 技術深入

  • torch.compile API: 作為 PyTorch 2.0 的主要 API,它將模型包裝並返回一個編譯後的模型,提供 mode (如 "default", "reduce-overhead", "max-autotune") 和 backend (預設為 TorchInductor) 等參數來控制編譯行為。
  • TorchDynamo: 透過 CPython 的 PEP 523 框架評估鉤子 (frame evaluation API) 動態修改 Python 字節碼,將 PyTorch 操作序列提取為 FX Graph。它能夠處理 Python 的控制流和動態形狀,並將非 PyTorch 代碼排除在圖捕獲之外。
  • TorchInductor: 接收 TorchDynamo 生成的 FX Graph,作為深度學習編譯器後端。它將計算圖降級 (lower) 到循環級別的 IR,進行算子融合和記憶體優化。對於 NVIDIA GPU,它利用 OpenAI Triton 編譯器生成高效的 GPU 內核;對於 CPU,則使用 OpenMP 或調用現有的高性能內核。
  • AOTAutograd: 重載 PyTorch 的自動微分引擎,用於生成提前 (ahead-of-time) 的反向追蹤,這使得反向傳播圖也能被編譯和優化。
  • PrimTorch: 將 PyTorch 中約 2000 多個操作符規範化為約 250 個原始操作符的封閉集,極大地簡化了為 PyTorch 開發後端或新功能的複雜性。
  • Torch-MLIR: 旨在提供從 PyTorch 生態系統到 MLIR (多層中間表示) 生態系統的一流支援,為 PyTorch 模型提供一條通往各種異構硬體後端的高效編譯路徑。
  • AOTInductor: TorchInductor 的專門版本,用於處理經 torch.export 導出的 PyTorch 模型,將其優化並生成共享庫等部署構件,以便在非 Python 環境中進行推論。

🔮 前景展望AI analysis grounded in cited sources

PyTorch 將進一步鞏固其作為主流 AI 框架的地位,特別是在研究與快速原型開發領域。
透過 AI 加速模型支援,PyTorch 能更快地適應新模型架構,降低開發者將新研究成果部署到高效執行環境的門檻,從而吸引更多創新。
AI 編譯器技術將變得更加普及和自動化,減少對人工優化的依賴。
PyTorch 利用 AI 降低編譯堆疊支援新模型所需的人工工程量,預示著未來 AI 編譯器將能自主學習和適應不斷變化的模型與硬體環境。
跨框架和硬體的模型部署將變得更加無縫,加速 AI 應用的落地。
PyTorch 編譯堆疊的改進,結合與 MLIR 等中間表示的整合,將有助於模型在不同異構硬體上實現高效且可攜的部署,打破硬體碎片化的挑戰。

時間線

2021-09
Torch-MLIR 專案啟動,旨在連接 PyTorch 與 MLIR 生態系統。
2022-11
TorchDynamo 首次發布,作為 Python 級即時 (JIT) 編譯器。
2022-12
PyTorch 2.0 在 PyTorch Conference 2022 上正式發布,引入 `torch.compile` 及相關核心技術。
2023-03
PyTorch 2.0 穩定版正式發布,`torch.compile` 成為主要 API。
2024-10
PyTorch 2.5 支援 CPU 路徑上的 FP16,並改進 TorchInductor CPU 後端。
2025-08
PyTorch 2.8 發布,增加對 ROCm 7 新架構的函數支援,並改進 Inductor CUTLASS 後端。
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: PyTorch Blog

這是摘要,不是原文。去看原站,或訂閱每週簡報。

每週 AI 簡報

每週一封,可隨時退訂。