推論の最適化#
ランタイムまたはデプロイメントの最適化では、推論と実行パラメーターの調整に重点が置かれます。モデルレベルの最適化とは異なり、使用するハードウェアと達成しようとする目標に特化しています。精度とパフォーマンス、スループットとレイテンシーのどちらを優先するか、あるいはバランスを目指すか計画する必要があります。また、アプリケーションがどの程度スケーラブルである必要があるか、また推論コンポーネントとどのように連携するかも予測する必要があります。そうすることで、製品は最良の結果を達成できるようになります。
パフォーマンス・ポータブル推論#
構成を容易にし、パフォーマンスの最適化を移植可能にするため、OpenVINO はパフォーマンスのヒント機能を提供します。これは、レイテンシー (デフォルト) またはスループットに重点を置いた 2 つの高レベルの “プリセット” で構成されています。
OpenVINO ランタイムで実行される推論は、多くの低レベルのパフォーマンス設定で構成できますが、次の理由から推奨されません:
デバイスのアーキテクチャーと推論エンジンに関する十分な理解が必要です。
他のデバイスとモデルの組み合わせにはうまく適合しない可能性があります。次に例を示します:
CPU と GPU では最適なストリーム数を異なる方法で推測します。
同じタイプの異なるデバイスでは、異なる実行構成が優先されます。
モデルが異なれば、最適なパラメーター構成も異なります (計算とメモリー帯域幅、推論精度、可能なモデルの量子化)。
実行の “スケジュール” はパフォーマンスに大きな影響を与え、デバイスに大きく依存します。GPU 指向の最適化は、必ずしも CPU に適切に対応するとは限りません。