MegEngine は XLA を正式にサポートします。

XLA (Accelerated Linear Algebra) は、Google が提案したニューラル ネットワーク コンパイラーであり、AI モデルのトレーニングと推論を高速化するために使用できます。 MegEngine 1.13.1 は XLA もサポートしています。モデルをトレーニングするときにこの機能をオンにすることを選択できます。さまざまなモデルで 10% から 80% の範囲で速度が向上します。

主な対象シナリオ

MegEngine は動的に実行されるようになりました。つまり、Python の各 mge.function 呼び出しは、基盤となる GPU でのカーネル実行に対応します。このモードの利点は、実際の実行方法がコード ロジックと一致しており、表示されたものがそのまま得られること、そして非常に柔軟であることですが、問題は、最適化が難しく、パフォーマンスが最適化されない可能性があることです。 。

XLAは静的実行方式を採用しており、モデルの計算過程を「HLO」(High-Level Optimized)と呼ばれる静的な計算グラフで表現します。 HLO には、計算グラフ、データ フロー、テンソルの形状に関する操作などの情報が含まれています。 XLA は、HLO に対して一連の最適化を実行し、最終的により良い計算グラフを生成して、計算をより速く完了します。 XLA の制限は、柔軟性が十分ではなく、テンソル形状の変更や制御フローなどの情報をうまく表現できないことです。

現在、MegEngine はすでに XLA をサポートしており、XLA を使用してモデル トレーニングの一部の比較的静的なシーンを高速化することができ、それによってトレーニング プロセス全体の時間を短縮できます。

使用方法と効果

MegEngine をトレーニングに使用する場合、元のトレーニング関数に xla_trace/partial_trace デコレーターを追加することで、XLA コンパイルの最適化を有効にすることができます。

モデル全体が完全に静的である場合、xla_trace を使用してネットワーク全体を静的グラフに表現し、その後の最適化とコンパイルのためにそれを XLA に渡します。後続の実行プロセスでは、この最適化された計算グラフが実行されて速度が向上します。

また、モデルに何らかのダイナミクスがある場合 (トレーニング プロセス中の Tensor Shape の変更など)、または制御フローがある場合は、partial_trace を使用してネットワークの静的な部分をいくつかのサブグラフにトレースし、処理のために XLA に渡すことができます。コンパイルの最適化により、ネットワークの他の部分は動的実行を維持しながら、パフォーマンスと柔軟性を確保します。

以下は、MegEngine で XLA 機能をオンにする前と後の、主流のニューラル ネットワーク モデルのパフォーマンスの変化を示しています。青色はXLAをオンにする前のトレーニング速度、オレンジ色はXLAをオンにした後のトレーニング速度です。 XLA をオンにすると、ほとんどのモデルのパフォーマンスが 10% ~ 40%、最大 80% 以上向上します。1.png

XLA と具体的な使用方法の詳細については、https://www.megengine.org.cn/doc/stable/zh/user-guide/model を参照してください。 -development/jit/xla.html

SenseTime 創設者、Tang Xiaoou 氏が 55 歳で死去 2023 年、PHP は停滞 Wi-Fi 7 が完全に利用可能になる2024 年初頭にデビュー、Wi-Fi 6 の 5 倍高速 Hongmeng システムが独立しつつあり、多くの大学が「Hongmeng クラス」を設立 Zhihui Jun の新興企業が借り換え、金額は 6 億元を超え、事前評価額は 35 億元 Quark Browser PC 版が内部テストを開始 AI コード アシスタントは人気があり、プログラミング言語のランキングはすべてです できることは何もありません Mate 60 Pro の 5G モデムと無線周波数技術ははるかに先を行っています MariaDB が SkySQL を分割し、確立されました独立した企業として<​​/span> Xiaomi、Yu Chengdong 氏の Huawei からの「キールピボット」盗作声明に対応
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/5265910/blog/10321024