インテル(R) インテグレーテッド・パフォーマンス・プリミティブ (インテル(R) IPP) の機能と使用方法について、さまざまな方法で学習することができます。
tools\env ディレクトリにあるバッチファイル、ippenv.bat を実行すると、インテル IPP の lib 環境変数、include 環境変数および path 環境変数が設定されます。
インテル IPP 関数と構造体は、include ディレクトリのいくつかのヘッダファイルで定義されます。ipp.h ファイルには、これらすべてが含まれています。上位互換性を確保するため、プログラムでは ipp.h のみをインクルードしてください。
次に説明する DLL ディスパッチャとマージ・スタティック・ライブラリにより、インテル IPP 関数の呼び出しはほかの C 関数の呼び出しと同様に簡単に行うことができます。各関数の最適化されたコードが、1 つのエントリポイント下にあります。
インテル IPP 関数の詳細は、マニュアルを参照してください。
インテル IPP には、インテル IPP DLL をロードして正しいエントリポイントにリンクする "スタブ" スタティック・ライブラリ・ファイルが含まれています。DLL を使用するには、stublib ディレクトリの ipp*.lib ファイルにリンクしてください。ippenv.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。適切なプロセッサ用の DLL に動的にリンクするために必要なのは、これらのライブラリをインクルードすることだけです。
ipp*.dll は "ディスパッチャ" DLL です。これらの DLL は bin ディレクトリにあります。実行時に、ディスパッチャ DLL はプロセッサを検出して、適切なプロセッサ固有の DLL をロードします。自動で適切なバージョンが使用されるため、コードが実行されるプロセッサに関係なくインテル IPP 関数を呼び出すことができます。これらのプロセッサ固有の DLL には、*px.dll、*a6.dll、*t7.dll 、*w7.dll のように名前が付けられています。いったん、"スタブ" スタティック・ライブラリがリンクされると、インテル IPP DLL を使用するために必要なのは、プログラムを実行するときにディスパッチャ DLL とプロセッサ固有の DLL がパスにあるかどうかを確認することだけです。
注: インテル IPP 4.0 の使用にあたっては、適切な libguide40.dll も PATH 環境変数に含まれている必要があります。IA-32 システムで実行するときは、bin ディレクトリを含めてください。ほかのバージョンの libguide40.dll とは互換性がありません。問題がある場合は、PATH にほかのバージョンの libguide40.dll が含まれていないことを確認してください。
インテル IPP 5.0 は OpenMP* 2.0 を使用してスレッドを実装します。スレッド数とスレッド動作を制御するには、OpenMP 環境変数と API を使用してください。例えば、OMP_NUM_THREADS、omp_set_num_threads(int num_threads)、OMP_SET_NESTED などを使用します。該当する OpenMP 関数呼び出しと環境変数については次のドキュメントのセクション 3 と 4 で説明されています。
http://www.openmp.org/drupal/mp-documents/cspec20.pdf (英語)
アプリケーションで必要なインテル IPP 関数のみが含まれるカスタム DLL を作成するには、"カスタム DLL のビルド" ツールを使用します。詳細は、「カスタム DLL のビルド」(英語) を参照してください。
インテル IPP には各関数のすべてのプロセッサ・バージョンを含む "マージ" スタティック・ライブラリ・ファイルが含まれています。DLL ディスパッチャの場合と同じように、関数が呼び出されると、適切な関数のバージョンが実行されます。DLL のメカニズムほど便利ではありませんが、コードサイズの合計がより小さくなります。
これらのスタティック・ライブラリを使用するには、lib ディレクトリの ipp*merged.lib ファイルにリンクします。ippenv.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。「マージ・スタティック・ライブラリの使用」(英語) の 説明に従って、必要な関数だけのスタブのディスパッチを作成してください。
1 つのプロセッサ固有のスタティック・ライブラリのみにリンクする場合は、このパッケージに含まれる「インテル(R) IPP を使用したシングル・プロセッサ・アプリケーションの作成」(英語) を参照してください。
インテル IPP パッケージでは、API の各インテル IPP 関数のパフォーマンスをテストする "perfsys" ツールが提供されています。
インテル Pentium プロセッサでのパフォーマンス・テスト・ツールの実行についての詳細は、.\tools\perfsys\ ディレクトリにある readme.htm を参照してください。
DLL 検索ライブラリは、前のセクションで説明したマージ・ライブラリのディスパッチャです。インテル IPP 関数を適用する方法を提供するため、マージ・ライブラリを使用して呼び出すようにインテル IPP 関数のエントリポイントに特別な定義を作成する必要はありません。プロジェクトに DLL 検索ライブラリを含めて、ソースコードからインテル IPP 関数を呼び出すだけです。
また、DLL 検索ライブラリにより、エンドユーザ・アプリケーションを新しいバージョンのインテル IPP 関数で自動的に更新することができます。ディスパッチャにより、インテル IPP DLL ディスパッチャ (ipps.dll など) の PATH が検索されます。ディスパッチャが、インテル IPP DLL 内に新しいバージョンのコードを検出した場合、アプリケーションに組み込まれているコードの代わりに新しい DLL からのコードが使用されます。そのため、最新のインテル IPP の最適化や新しいインテル(R) プロセッサを利用する際に、開発の手間がいりません。
マージ・ライブラリと比べると、DLL 検索ライブラリには、いくつかの短所があります。DLL 検索ライブラリを使用する場合、CPU 固有のコードを除外することはできません。各関数のすべてのプロセッサ・バージョン (IA-32 のみ) がアプリケーションにリンクされます。また、DLL 検索ライブラリをカーネルモードで使用することはできません。
次の手順に従って、インテル IPP DLL 検索ライブラリを使用してアプリケーションをビルドします。
Intel、インテル、Intel ロゴ、Pentium は、米国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。
* その他の社名、商品名などは、一般に各社の商標または登録商標です。
© 2002-2005, Intel Corporation.