インテル® IPP を初めて使用される方のために、以下に簡単なアプリケーションのサンプルコードを示します。このサンプルコードには、重要な概念が含まれています。
#include "ipp.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
const IppLibraryVersion *lib;
Ipp64u fm;
ippInit(); // 自動で最適なものをスタティック・ディスパッチ
//ippInitCpu(ippCpuSSSE3); // 特定のスタティック・ライブラリー・レベルを選択
// デバッグ/プロファイルに役立つ
// バージョン情報を取得
lib = ippiGetLibVersion();
printf("%s %s\n", lib->Name, lib->Version);
// 選択されたライブラリー・レベルで有効な CPU 機能を取得
fm=ippGetEnabledCpuFeatures();
printf("SSE2 %c\n",(fm>>2)&1?'Y':'N');
printf("SSE3 %c\n",(fm>>3)&1?'Y':'N');
printf("SSSE3 %c\n",(fm>>4)&1?'Y':'N');
printf("SSE41 %c\n",(fm>>6)&1?'Y':'N');
printf("SSE42 %c\n",(fm>>7)&1?'Y':'N');
printf("AVX %c OS Enabled %c\n", (fm>>8)&1 ?'Y':'N', (fm>>9)&1 ?'Y':'N');
printf("AES %c CLMUL %c\n", (fm>>10)&1?'Y':'N', (fm>>11)&1?'Y':'N');
return 0;
}
このアプリケーションは、次の 3 つのセクションで構成されています。
IPP を初期化します。このセクションは、IPP による最適化を最大限に利用するために必要です。ippInit() がなくても IPP プログラムは実行できますが、デフォルトで最小の最適化が実装されます。 ippInit() があると、ランタイムに最高の最適化レイヤーがディスパッチされます。 特定のデバッグシナリオなど、必要に応じて、ディスパッチャーにより選択される最適なレイヤーではなく、特定の実装レイヤーを指定することもできます。この例では、ippInitCpu が使用されています。
ライブラリーのレイヤー名とバージョンを取得します。\include ディレクトリーの ippversion.h ファイルを使用してバージョン情報を取得することもできます。
ライブラリー・レイヤーで使用されるハードウェアの最適化を示します。
Microsoft* Visual Studio* を起動して、空の C++ プロジェクトを作成します。
新しい c ファイルを追加し、上記のサンプルコードをペーストします。
プロジェクトの [プロパティー] ダイアログボックスを開きます。 IPP が正しくインストールされている場合、[Intel Performance Libraries (インテル® パフォーマンス・ライブラリー)] セクションが表示されます。 以下のスクリーンショットに示すように、ドロップダウン・リストからオプションを 1 つ選択します。
このステップは、インクルード・ディレクトリーとリンクモデルを設定します。リンクモデルに関する詳細は、「インテル® IPP とアプリケーションのリンク」を参照してください。

サンプルコードの実行結果に関する詳細は、「ディスパッチ」を参照してください。