インテル® インテグレーテッド・パフォーマンス・プリミティブ 5.3 Linux* 版 (インテル® 64 アーキテクチャー用) 
入門ガイド

目次

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

API について

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

環境変数

共有ライブラリーへのパスを LD_LIBRARY_PATH 変数に追加する必要があります (下記を参照してください)。また、インテル® IPP の include ファイルと lib ファイルの場所を指定する必要があります。tools/env ディレクトリーにあるシェルスクリプト、ippvarsem64t.sh を実行すると、インテル® IPP の lib 環境変数、include 環境変数および path 環境変数が設定されます。 

ヘッダーファイル

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

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

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

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

インテル® IPP 共有ライブラリーとディスパッチャーの使用

インテル® IPP 共有ライブラリーを使用する前に、システム変数 LD_LIBRARY_PATH にライブラリーへのパスを追加する必要があります。例えば、ライブラリーが /opt/intel/ipp/5.3/em64t/sharedlib フォルダーに含まれている場合、次のコマンドを入力します。

インテル® 64 アーキテクチャー・ベースのシステム:
export LD_LIBRARY_PATH=/opt/intel/ipp/5.3/em64t/sharedlib:$LD_LIBRARY_PATH

共有ライブラリー、libipp*em64t.so は "ディスパッチャー" ダイナミック・ライブラリーです。実行時に、共有ライブラリーはプロセッサーを検出して、適切なプロセッサー固有の共有ライブラリーをロードします。自動で適切なバージョンがロードされ使用されるため、コードが実行されるプロセッサーに関係なくインテル® IPP 関数を呼び出すことができます。これらのプロセッサー固有のライブラリーには、*mx.so*m7.so*u8.so および *y8.so のように名前が付けられています。ライブラリーはすべて sharedlib ディレクトリーにあります。

注: 適切な libguide.so も PATH 環境変数に含まれている必要があります。IA-32 システムで実行するときは、sharedlib ディレクトリーを含めてください。ほかのバージョンの libguide.so とは互換性がありません。問題がある場合は、PATH にほかのバージョンの libguide.so が含まれていないことを確認してください。

プロセッサー・コード

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

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

これらのスタティック・ライブラリーを使用するには、lib ディレクトリーの libipp*mergedem64t.a ファイルにリンクします。詳細は、インテル® IPP リンクサンプル (英語) を参照してください。

インテル® IPP 共有オブジェクト検索ライブラリーの使用

概要

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

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

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

ビルドの手順

次の手順に従って、インテル® IPP 共有オブジェクト検索ライブラリーを使用してアプリケーションをビルドします。

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

インテル® IPP パッケージでは、API の各インテル® IPP 関数のパフォーマンスをテストする "perfsys" ツールが提供されています。インテル® 64 アーキテクチャーでのパフォーマンス・テスト・ツールの実行に関する詳細は、.\tools\perfsys\ ディレクトリーにある readme.htm を参照してください。

Intel、インテル、Intel ロゴ、Intel Core、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
 
© 2007 Intel Corporation. 無断での引用、転載を禁じます。