Intel Integrated Performance Primitives
インテル Integrated Performance Primitives (IPP) とは、マルチメディア・画像処理・信号処理のために最適化された基本関数群からなるソフトウェアライブラリである。ライブラリはインテルプロセッサならびに互換プロセッサをサポートしており、Windows、Linux、macOS、Androidオペレーティングシステムの各プラットフォームで利用可能である。
IPPは複数世代のプロセッサごとに実装された複数の最適コードの中から、実行時に環境に応じて最適なものを動的選択するディスパッチ機能をサポートしている。たとえばSSE/SSE2命令までをサポートするプロセッサではSSE/SSE2を利用したコードを、AVX命令までをサポートするプロセッサではAVXを利用したコードを実行する、などである。IPPを動的リンク(ダイナミックリンク)する場合は、実行時に自動的に最適な共有ライブラリのモジュール(Windows版ではDLL)が選択されるが、静的リンク(スタティックリンク)する場合はippStaticInit()関数(IPP 9.0から廃止)またはippInit()関数をあらかじめ明示的に呼び出しておく必要がある。ippInit()を呼び出すタイミングは、通例アプリケーションプログラムのエントリポイント(main関数)だが、動的リンクされるユーザーライブラリの内部でIPPを使用する場合は、ユーザーライブラリのスタートアッププロセス(WindowsではDllMain関数)でのippInit()呼び出しが必要となることがある。