インテル® IPP の使用を開始する前に

インテル® IPP の使用を開始する前に、基本的な概念を理解しておくと役に立ちます。

高レベル API とプリミティブ

インテル® IPP は、2 つのレベルのビルディング・ブロックで構成されています。

プリミティブとは、畳み込みフィルターやイメージのサイズ変更などの基本操作の抽象化です。パフォーマンス・クリティカルな小さな操作に対する、高度に最適化された実装を目的としています。特定のインテル® アーキテクチャー向けの「レイヤー」で C およびアセンブラーで実装されます (下記の「ディスパッチ」を参照)。

プリミティブを使用して最適化されるパフォーマンス・クリティカルなセクションには多くのインフラストラクチャーが必要になるため、高レベル API を使用すると便利です。サンプルには、完全なソースコードが含まれます。これらのサンプルは開始点として提供されているだけで、開発者が製品版に使用する場合は、コンポーネント (I/O ほか) の多くが変更されることを想定してビルドされています。そのため、プリミティブと同等の最適化、テスト、サポートは行われていません。また、メディア API は、各コーデックの仕様を完全に実装するものではありません。

関数ドメイン

インテル® IPP の拡張機能は、複数のドメインにグループ化されています。関数ドメインについては 「インテル® IPP ドメインの詳細」を参照してください。また、クロスドメインの依存関係の種類については、「ドメイン別のライブラリー依存関係」の表を参照してください。

ディスパッチ

インテル® IPP の主要機能の 1 つは、インテルのハードウェア世代ごとに最適化された複数の実装を 1 つのインターフェイスで提供することです。詳細は、このドキュメントの「ディスパッチ」またはナレッジベースの記事「Understanding SIMD Optimization Layers and Dispatching in the Intel® IPP 7.1 Library」 (英語) を参照してください。

リンクモデル

インテル® IPP は、次の 3 つのリンクモデルを提供します。

マルチスレッド・スタティック・ライブラリーは、インテル® ソフトウェア開発製品レジストレーション・センター (https://registrationcenter.intel.com/) から別途ダウンロードできます。

リンクモデルに関する詳細は、このドキュメントのリンクモデル関連のセクションまたはナレッジベースの記事「Introduction to Linking with the Intel® IPP 7.1 Library」 (http://software.intel.com/en-us/articles/introduction-to-linking-with-intel-ipp-71-library (英語)) を参照してください。

内部スレッド化は、インテル® IPP 7.1 で廃止されました。シングルスレッドの IPP 関数に変更することを強くお勧めします。

アプリケーションでスレッド化を行う場合、全体的なパフォーマンスとスレッド制御を向上させるより多くのオプションを利用できます。

スレッド化モデル

多くのインテル® IPP 関数は、OpenMP* を使用して内部がスレッド化されています。ドキュメント・ディレクトリーの ThreadedFunctionsList.txt にリストがあります。

詳細は、「マルチスレッド・アプリケーションのサポート」を参照してください。

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804


このヘルプトピックについてのフィードバックを送信