ORT形式モデルのランタイム最適化
ORT形式モデルのランタイム最適化
Section titled “ORT形式モデルのランタイム最適化”- TOC
このドキュメントでは、ORT形式モデルに保存できるランタイム最適化について説明します。
ONNX Runtimeは、さまざまなグラフ最適化をサポートしています。これらの最適化は、モデルのパフォーマンスを向上させるためにグラフを書き換えます。
一部の最適化は、ランタイムに依存しない方法で適用できます。たとえば、定数畳み込みは、モデルの実行前に定数入力をを持つ畳み込み演算を計算することによって、モデルを最適化します。
他の最適化は、ランタイムに依存します。たとえば、演算子融合は、複数の演算子を単一の演算子に結合して、カーネルの起動とメモリ帯域幅のオーバーヘッドを削減します。最適な融合構成は、特定のハードウェアとソフトウェア環境に依存する可能性があります。
ORT形式モデルのランタイム最適化
Section titled “ORT形式モデルのランタイム最適化”ORT形式モデルは、ランタイムに依存する最適化を保存できます。これらの最適化は、モデルの実行時に適用されます。
ORT形式モデルにランタイム最適化を保存することには、2つの主な利点があります。
- パフォーマンスの向上:最適な融合構成は、特定のハードウェアとソフトウェア環境に依存する可能性があります。ランタイム最適化をORT形式モデルに保存することで、ONNX Runtimeはターゲットデバイスに最適な融合構成を選択できます。
- モデルサイズの縮小:ランタイム最適化をORT形式モデルに保存することで、モデルサイズを縮小できます。これは、ONNX Runtimeが最適化されたグラフをモデルに保存する必要がないためです。
ORT形式モデルでランタイム最適化を有効にする方法
Section titled “ORT形式モデルでランタイム最適化を有効にする方法”ORT形式モデルでランタイム最適化を有効にするには、--optimization_style引数をRuntimeに設定してモデル変換スクリプトを使用します。
python -m onnxruntime.tools.convert_onnx_models_to_ort <onnxモデルファイルまたはディレクトリ> --optimization_style RuntimeORT形式モデルでランタイム最適化を無効にする方法
Section titled “ORT形式モデルでランタイム最適化を無効にする方法”ORT形式モデルでランタイム最適化を無効にするには、--optimization_style引数をFixedに設定してモデル変換スクリプトを使用します。
python -m onnxruntime.tools.convert_onnx_models_to_ort <onnxモデルファイルまたはディレクトリ> --optimization_style FixedORT形式モデルで利用可能なランタイム最適化
Section titled “ORT形式モデルで利用可能なランタイム最適化”現在、ORT形式モデルでは次のランタイム最適化が利用可能です。
- 演算子融合:複数の演算子を単一の演算子に結合します。
- メモリレイアウトの最適化:パフォーマンスを向上させるために、テンソルのメモリレイアウトを変更します。