インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP) の機能と使用方法について、さまざまな方法で学習することができます。
tools\env ディレクトリーにあるバッチファイル、ippenvem64t.bat を実行すると、インテル® IPP の lib 環境変数、include 環境変数および path 環境変数が設定されます。
インテル® IPP 関数と構造体は、include ディレクトリーのいくつかのヘッダーファイルで定義されます。IPP.h ファイルには、これらすべてが含まれています。上位互換性を確保するため、プログラムでは IPP.h のみをインクルードしてください。
次に説明する共有ライブラリー・ディスパッチャーとマージド・スタティック・ライブラリーにより、インテル® IPP 関数の呼び出しはほかの C 関数の呼び出しと同様に簡単に行うことができます。各関数の最適化されたコードが、1 つのエントリーポイントにあります。
インテル® IPP 関数の詳細は、マニュアルを参照してください 。
インテル® IPP には、インテル® IPP DLL をロードして正しいエントリーポイントにリンクする "スタブ" スタティック・ライブラリー・ファイルが含まれています。DLL を使用するには、stublib ディレクトリーの ipp*em64t.lib ファイルにリンクしてください。ippenvem64t.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。適切なプロセッサー用の DLL に動的にリンクするために必要なのは、これらのライブラリーをインクルードすることだけです。
ipp*em64t.dll は "ディスパッチャー" DLL です。これらの DLL は bin ディレクトリーにあります。実行時に、ディスパッチャー DLL はプロセッサーを検出して、適切なプロセッサー固有の DLL をロードします。自動で適切なバージョンが使用されるため、コードが実行されるプロセッサーに関係なくインテル® IPP 関数を呼び出すことができます。これらのプロセッサー固有の DLLには、*mx.dll、*m7.dll、*u8*.dll、*y8*..dll のように名前が付けられています。これらの DLL は bin ディレクトリーにあります。いったん、"スタブ" スタティック・ライブラリーがリンクされると、インテル® IPP DLL を使用するために必要なのは、プログラムを実行するときにディスパッチャー DLL とプロセッサー固有の DLL がパスにあるかどうかを確認することだけです。
注: インテル® IPP 4.0 の使用にあたっては、適切な libguide40.dll も PATH 環境変数に含まれている必要があります。インテル® 64 対応のシステムで実行するときは、bin ディレクトリーを含めてください。ほかのバージョンの libguide40.dll とは互換性がありません。問題がある場合は、PATH にほかのバージョンの libguide40.dll が含まれていないことを確認してください。
プロセッサー・コード
アプリケーションで必要なインテル® IPP 関数のみが含まれるカスタム DLL を作成するには、"カスタム DLL のビルド" ツールを使用します。 詳細は、インテル® IPP リンクサンプル (英語) を参照してください。
インテル® IPP には各関数のすべてのプロセッサー・バージョンを含む "マージ" スタティック・ライブラリー・ファイルが含まれています。DLL ディスパッチャーの場合と同じように、関数が呼び出されると、適切な関数のバージョンが実行されます。DLL のメカニズムほど便利ではありませんが、コードサイズの合計がより小さくなります。
これらのスタティック・ライブラリーを使用するには、lib ディレクトリーの ipp*mergedem64t.lib ファイルにリンクします。ippenvem64t.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。
DLL 検索ライブラリーは、前のセクションで説明したマージド・ライブラリーのディスパッチャーです。インテル® IPP 関数を適用する方法を提供するため、マージド・ライブラリーを使用して呼び出すようにインテル® IPP 関数のエントリーポイントに特別な定義を作成する必要はありません。プロジェクトに DLL 検索ライブラリーを含めて、ソースコードからインテル® IPP 関数を呼び出すだけです。
また、DLL 検索ライブラリーにより、エンド・ユーザー・アプリケーションを新しいバージョンのインテル® IPP 関数で自動的に更新することができます。ディスパッチャーにより、インテル® IPP DLL ディスパッチャー (ippsem64t.dll など) の PATH が検索されます。ディスパッチャーが、インテル® IPP DLL 内に新しいバージョンのコードを検出した場合、アプリケーションに組み込まれているコードの代わりに新しい DLL からのコードが使用されます。そのため、最新のインテル® IPP の最適化や新しいインテル® プロセッサーを利用する際に、開発の手間がいりません。
マージド・ライブラリーと比べると、DLL 検索ライブラリーには、いくつかの短所があります。DLL 検索ライブラリーを使用する場合、CPU 固有のコードを除外することはできません。各関数のすべてのプロセッサー・バージョンがアプリケーションにリンクされます。また、DLL 検索ライブラリーをカーネルモードで使用することはできません。
次の手順に従って、インテル® IPP DLL 検索ライブラリーを使用してアプリケーションをビルドします。
インテル® IPP パッケージでは、API の各インテル® IPP 関数のパフォーマンスをテストする "perfsys" ツールが提供されています。インテル® 64 対応プラットフォームでのパフォーマンス・テスト・ツールの実行に関する詳細は、.\tools\perfsys\ ディレクトリーにある readme.htm を参照してください。
Intel、インテル、Intel ロゴ、Intel Core、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2007 Intel Corporation. 無断での引用、転載を禁じます。