インテル(R) インテグレーテッド・パフォーマンス・プリミティブ (インテル(R) IPP) 5.0 Windows* 版 (インテル(R) エクステンデッド・メモリ 64 テクノロジ (インテル(R) EM64T) 対応のインテル(R) Xeon(R) プロセッサ用)
入門ガイド

目次

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

API について

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

環境変数

tools\env ディレクトリにあるバッチファイル、ippenvem64t.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*em64t.lib ファイルにリンクしてください。ippenvem64t.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。適切なプロセッサ用の DLL に動的にリンクするために必要なのは、これらのライブラリをインクルードすることだけです。

ipp*em64t.dll は "ディスパッチャ" DLL です。これらの DLL は bin ディレクトリにあります。実行時に、ディスパッチャ DLL はプロセッサを検出して、適切なプロセッサ固有の DLL をロードします。自動で適切なバージョンが使用されるため、コードが実行されるプロセッサに関係なくインテル IPP 関数を呼び出すことができます。これらのプロセッサ固有の DLLには、*mx.dll および *m7.dll のように名前が付けられています。これらの DLL は bin ディレクトリにあります。いったん、"スタブ" スタティック・ライブラリがリンクされると、インテル IPP DLL を使用するために必要なのは、プログラムを実行するときにディスパッチャ DLL とプロセッサ固有の DLL がパスにあるかどうかを確認することだけです。

注: インテル IPP 4.0 の使用にあたっては、適切な libguide40.dll も PATH 環境変数に含まれている必要があります。インテル EM64T 対応のシステムで実行するときは、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 スタティック・ライブラリの使用

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

これらのスタティック・ライブラリを使用するには、lib ディレクトリの ipp*mergedem64t.lib ファイルにリンクします。ippenvem64t.bat ファイルを使用して lib 環境変数を設定するか、またはフルパスを使用してこれらのファイルを参照する必要があります。

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

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

インテル EM64T 対応のインテル Xeon プロセッサでパフォーマンス・テスト・ツールを実行する詳細については、.\tools\perfsys\ ディレクトリにある readme.htm を参照してください。

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

概要

DLL 検索ライブラリは、前のセクションで説明したマージ・ライブラリのディスパッチャです。インテル IPP 関数を適用する方法を提供するため、マージ・ライブラリを使用して呼び出すようにインテル IPP 関数のエントリポイントに特別な定義を作成する必要はありません。プロジェクトに DLL 検索ライブラリを含めて、ソースコードからインテル IPP 関数を呼び出すだけです。

また、DLL 検索ライブラリにより、エンドユーザ・アプリケーションを新しいバージョンのインテル IPP 関数で自動的に更新することができます。ディスパッチャにより、インテル IPP DLL ディスパッチャ (ippsem64t.dll など) の PATH が検索されます。ディスパッチャが、インテル IPP DLL 内に新しいバージョンのコードを検出した場合、アプリケーションに組み込まれているコードの代わりに新しい DLL からのコードが使用されます。そのため、最新のインテル IPP の最適化や新しいインテル(R) プロセッサを利用する際に、開発の手間がいりません。

マージ・ライブラリと比べると、DLL 検索ライブラリには、いくつかの短所があります。DLL 検索ライブラリを使用する場合、CPU 固有のコードを除外することはできません。各関数のすべてのプロセッサ・バージョンがアプリケーションにリンクされます。また、DLL 検索ライブラリをカーネルモードで使用することはできません。

ビルドの手順

次の手順に従って、インテル IPP DLL 検索ライブラリを使用してアプリケーションをビルドします。

Intel、インテル、Intel ロゴ、Xeon は、米国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。

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