インテル(R) インテグレーテッド・パフォーマンス・プリミティブ 5.1 Windows* 版 (IA-32 インテル(R) アーキテクチャー用)
入門ガイド

目次

API について
環境変数
ヘッダーファイル
インテル IPP 関数の呼び出し
インテル IPP DLL とディスパッチャーの使用
カスタム DLL のビルド
インテル IPP スタティック・ライブラリーの使用
インテル IPP パフォーマンス・ベンチマーク・ツールの使用
インテル IPP DLL 検索スタティック・ライブラリーの使用

API について

インテル(R) インテグレーテッド・パフォーマンス・プリミティブ (インテル(R) IPP) の機能と使用方法について、さまざまな方法で学習することができます。

環境変数

tools\env ディレクトリーにあるバッチファイル、ippenv.bat を実行すると、インテル IPP の lib 環境変数、include 環境変数および path 環境変数が設定されます。

ヘッダーファイル

インテル IPP 関数と構造体は、include ディレクトリーのいくつかのヘッダーファイルで定義されます。ipp.h ファイルには、これらすべてが含まれています。上位互換性を確保するため、プログラムでは ipp.h のみをインクルードしてください。

インテル IPP 関数の呼び出し

次に説明する DLL ディスパッチャーとマージド・スタティック・ライブラリーにより、インテル IPP 関数の呼び出しはほかの C 関数の呼び出しと同様に簡単に行うことができます。各関数の最適化されたコードが、1 つのエントリーポイント下にあります。

インテル IPP 関数の詳細は、マニュアルを参照してください。

インテル IPP DLL とディスパッチャーの使用

インテル 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.1 は 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 (英語)

プロセッサー・コード

カスタム DLL のビルド

アプリケーションで必要なインテル IPP 関数のみが含まれるカスタム DLL を作成するには、"カスタム DLL のビルド" ツールを使用します。 詳細は、インテル IPP のサンプルを参照してください。

インテル IPP スタティック・ライブラリーの使用

インテル IPP には各関数のすべてのプロセッサー・バージョンを含む "マージ" スタティック・ライブラリー・ファイルが含まれています。DLL ディスパッチャーの場合と同じように、関数が呼び出されると、適切な関数のバージョンが実行されます。DLL のメカニズムほど便利ではありませんが、コードサイズの合計がより小さくなります。

これらのスタティック・ライブラリーを使用するには、lib ディレクトリーの ipp*merged.lib ファイルにリンクします。ippenv.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。詳細は、インテル IPP のサンプルを参照してください。

1 つのプロセッサー固有のスタティック・ライブラリーのみにリンクする場合は、このパッケージに含まれる「インテル(R) IPP を使用したシングル・プロセッサー・アプリケーションの作成」(英語) を参照してください。

インテル IPP パフォーマンス・ベンチマーク・ツールの使用

インテル IPP パッケージでは、API の各インテル IPP 関数のパフォーマンスをテストする "perfsys" ツールが提供されています。

IA-32 インテル(R) アーキテクチャーでのパフォーマンス・テスト・ツールの実行に関する詳細は、.\tools\perfsys\ ディレクトリーにある readme.htm を参照してください。

インテル IPP DLL 検索ライブラリーの使用

概要

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 またはその子会社の商標または登録商標です。

* その他の社名、製品名などは、一般に各社の商標または登録商標です。
 
(C) 2002-2006, Intel Corporation.