EvoX 1.1 リリース: torch.compile (TorchDynamo) を搭載

EvoX 1.1 のリリースをお知らせできることを嬉しく思います。今回のアップデートでは、バックエンドコンパイラとして torch.compile (TorchDynamo) の完全統合 を導入しました!これにより、従来の TorchScript アプローチが置き換えられ、EvoX は より使いやすく、広範な Python エコシステムとの高い互換性 を持つようになりました。

torch.compile を活用することで、EvoX は実行時に計算グラフを動的にキャプチャし、手動でのトレース作業を不要にしながら、パフォーマンスを自動的に最適化します。

新機能について

torch.compile: よりスマートで柔軟なコンパイル

EvoX 1.1 では、新しいコンパイルバックエンドとして torch.compile を全面的に採用しました。従来のトレースベースのアプローチとは異なり、内部で TorchDynamo を使用する torch.compile は、Python の実行に介入し、計算グラフを動的に抽出してリアルタイムで最適化します。

具体的には以下の通りです:

  • 手動トレースは不要torch.compile(workflow.step) を呼び出すだけで、あとは EvoX が処理します。

  • シームレスな Python 互換性 — ネイティブの Python 関数や、NumPy、SciPy などの外部ライブラリとも連携します。

  • パフォーマンスの向上 — 最適化された計算グラフにより、実行速度が向上し、ハードウェアの使用効率が改善 されます。

  • 将来を見据えた設計 — PyTorch のロードマップに準拠しており、長期的な互換性とパフォーマンスの向上が保証されます。

なぜ TorchScript から torch.compile へ移行するのか?

初期のバージョンでは、EvoX は トレースベースの手法 に依存していました:

  • Pre-1.0.0 では、計算グラフの抽出に JAX tracing を使用していました。

  • v1.0.0 では TorchScript に切り替え、PyTorch との統合を強化しました。

しかし、これらの手法にはいくつかの欠点がありました:

  • 使用が複雑 — ユーザーは手動でグラフをトレースし、複雑なデバッグを行う必要がありました。

  • 互換性の制限 — 動的なワークフローや非 PyTorch 関数の扱いに苦労しました。

  • 柔軟性の欠如 — ループや条件分岐、その他の Python 構文が正しくキャプチャされないことがありました。

torch.compile と TorchDynamo により、これらの問題は解消されました。EvoX は動的に最適化を行うようになり、ユーザーの追加作業なしで より幅広いワークフローをサポートします。

EvoX 1.1 がもたらす利便性

  • トレースの手間が不要 — すべてがバックグラウンドで処理されるため、コードがよりクリーンでメンテナンスしやすくなります。

  • 既存の Python コードで動作 — 互換性のためにワークフローを修正する必要はありません。

  • 実行速度とスケーリングの向上 — GPU や TPU に対する PyTorch の最新の最適化の恩恵を受けられます。

  • 将来への対応 — 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

4.png