インテル® IPP 2018 デベロッパー・ガイド

メモリー割り当ての管理

実装レイヤーと特定のパラメーターに応じて、一部のインテル® IPP 関数では、係数の保持と作業バッファーに必要なメモリー容量が異なります。この違いに対応するには、次の操作を行います。

  1. <操作関数>GetSize 関数を使用して、必要なバッファーサイズを計算します。
  2. 初期化に必要なバッファーをセットアップします。
  3. 操作用の構造を初期化します。
  4. 初期化に必要なバッファーのみ解放します。
  5. メイン操作用の作業バッファーをセットアップします。
  6. メイン操作を実行します。
  7. 作業バッファーを開放します。

pBuffer 引数 (外部メモリーバッファー) を含むインテル® IPP 関数を使用する場合、より優れた効率とパフォーマンスが得られるように、アプリケーションの 1 つの場所ですべての <操作関数>GetSize API を呼び出し、最大サイズの 1 つのバッファーのみ割り当てることを推奨します。このアプローチにより、システムメモリーとすべてのキャッシュレベルの最適な使用が保証されます。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804