- PyTorch 2.0深度學習從零開始學
- 王曉華
- 511字
- 2024-12-27 21:21:26
1.2.2 更快、更優、更具編譯支持——PyTorch 2.0更好的未來
PyTorch 2.0的誕生使得PyTorch的性能進一步提升,并開始將PyTorch的部分內容從C++陣營拉到Python陣營中。而其中最為人津津樂道的新技術包括TorchDynamo、AOTAutograd、PrimTorch以及TorchInductor。
1.TorchDynamo
TorchDynamo可以借助Python Frame Evaluation Hooks(Python框架評估鉤子),安全地獲取PyTorch程序,這項重大創新是PyTorch過去5年來在安全圖結構捕獲(Safe Graph Capture)方面研發成果的匯總。
2.AOTAutograd
AOTAutograd重載PyTorch Autograd Engine(PyTorch自動微分引擎),作為一個Tracing Autodiff,用于生成超前的Backward Trace(后向追溯)。
3.PrimTorch
PrimTorch將2000多個PyTorch算子歸納為約250個Primitive Operator閉集(Closed Set),開發者可以針對這些算子構建一個完整的PyTorch后端。PrimTorch大大簡化了編寫PyTorch功能或后端的流程。
4.TorchInductor
TorchInductor是一個深度學習編譯器,可以為多個加速器和后端生成快速代碼。對于NVIDIA GPU,它使用OpenAI Triton作為關鍵構建模塊。
TorchDynamo、AOTAutograd、PrimTorch和TorchInductor是用Python編寫的,并且支持Dynamic Shape(無須重新編譯就能發送不同大小的向量),這使得它們靈活且易學,降低了開發者和供應商的準入門檻。
除此之外,PyTorch 2.0官宣了一個重要特性——torch.compile,這一特性將PyTorch的性能推向了新的高度,并將PyTorch的部分內容從C++移回Python。torch.compile是一個完全附加的(可選的)特性,因此PyTorch 2.0是100%向后兼容的。
當然,PyTorch 2.0目前只推出了改革的第一個版本,隨著后續PyTorch社區以及維護團隊的修正和更新,PyTorch一定會迎來更好的未來。