我們很高興地宣布 EvoX 1.1 正式發布,引入了 torch.compile (TorchDynamo) 的完整整合作為後端編譯器!此更新取代了先前的 TorchScript 方法,使 EvoX 更易於使用,並與更廣泛的 Python 生態系統高度相容。
透過利用 torch.compile,EvoX 現在可以在執行時動態捕捉計算圖,消除手動追蹤 (tracing) 的需求,同時自動優化效能。
有什麼新功能?
torch.compile:更智慧、更靈活的編譯
在 EvoX 1.1 中,我們全面採用 torch.compile 作為新的編譯後端。與先前基於追蹤的方法不同,torch.compile——其內部使用 TorchDynamo——會攔截 Python 執行,動態提取計算圖,並即時進行優化。
這意味著:
-
不再需要手動追蹤 —— 只需呼叫 torch.compile(workflow.step),EvoX 會處理剩下的工作。
-
無縫的 Python 相容性 —— 適用於原生 Python 函式以及 NumPy 和 SciPy 等外部函式庫。
-
更好的效能 —— 優化的計算圖帶來更快的執行速度和更好的硬體利用率。
-
面向未來的設計 —— 與 PyTorch 的發展藍圖保持一致,確保長期的相容性和效能改進。
為什麼從 TorchScript 轉向 torch.compile?
在早期版本中,EvoX 依賴基於追蹤的方法:
-
1.0.0 之前使用 JAX tracing 進行計算圖提取。
-
v1.0.0 切換到 TorchScript,增強了 PyTorch 整合。
然而,這些方法有一些缺點:
-
使用複雜 —— 使用者必須手動追蹤圖形並處理複雜的除錯。
-
相容性有限 —— 難以處理動態工作流程和非 PyTorch 函式。
-
靈活性受限 —— 迴圈、條件語句和其他 Python 結構並不總能被正確捕捉。
有了 torch.compile 和 TorchDynamo,這些問題都消失了。EvoX 現在進行動態優化,支援更廣泛的工作流程,使用者無需付出額外努力。
EvoX 1.1 如何讓您的生活更輕鬆
-
不再有追蹤的麻煩 —— 一切都在幕後進行,讓您的程式碼更乾淨、更易於維護。
-
適用於您現有的 Python 程式碼 —— 無需為了相容性修改您的工作流程。
-
執行更快,擴展性更好 —— 受益於 PyTorch 對 GPU 和 TPU 的最新優化。
-
為未來做好準備 —— 與 PyTorch 的長期演進保持一致,確保持續的效能提升。
立即升級到 EvoX 1.1!
EvoX 1.1 現已正式發布!立即升級,體驗更智慧、更快速且更直觀的計算工作流程。
獲取 EvoX 1.1:GitHub
有問題或回饋嗎?在 GitHub 上開啟 issue 或加入我們的社群討論。讓我們一起拓展計算智慧的邊界!
原始碼 / 社群 / 文件
論文:https://arxiv.org/abs/2301.12457
GitHub:https://github.com/EMI-Group/evox
文件:https://evox.readthedocs.io/en/latest/
QQ 群:297969717
