インテル® Data Analytics Acceleration Library (インテル® DAAL) は、データの取得から、前処理、変換、データマイニング、モデリング、検証、意思決定まで、すべてのデータ解析段階をカバーする、インテル® アーキテクチャー向けに最適化されたビルディング・ブロックのライブラリーです。

インテル® DAAL は、スタンドアロンまたは次のスイート製品の一部としてインストールされます。

必要条件

システム要件 (英語)

インテル® DAAL のインストール

インテル® DAAL は <install dir>\daal ディレクトリーにインストールされます。

デフォルトでは、<install dir>C:\Program files (x86)\IntelSWTools\compilers_and_libraries_2016.x.xxx\windows です。

インストールの詳細は、インテル® DAAL インストール・ガイド (英語) を参照してください。

環境変数の設定

  1. ターゲット・プラットフォーム・アーキテクチャーに応じて適切な <install dir>\daal\bin\daalvars.bat スクリプトを実行します。

    • IA-32 アーキテクチャー:

      daalvars.bat ia32

    • インテル® 64 アーキテクチャー:

      daalvars.bat intel64

  2. オプション: デフォルトのコンパイラーと異なる Java* コンパイラーを指定します。

    set JAVA_HOME=%PATH_TO_JAVA_SDK%

    set PATH=%JAVA_HOME%\bin:%PATH%

C++ 言語

ステップ 1: インテル® DAAL アプリケーションの自動リンクの設定

Microsoft* Visual Studio* 統合開発環境 (IDE) で、ビルドするインテル® DAAL 用 C++ プロジェクトを開くか作成します。

インテル® C++ コンパイラー 16 の /Qdaal オプションを指定するか、IDE でプロジェクトを設定します。

コンパイラー・オプション

IDE オプション

/Qdaal または /Qdaal:parallel

インテル® DAAL のスレッドバージョンとリンクとリンクします。

Visual Studio*:

  1. [ソリューション エクスプローラ] で、[プロジェクト] > [プロパティ] > [構成プロパティ] > [Intel Performance Libraries (インテル(R) パフォーマンス・ライブラリー)] を選択します。
  2. [Use Intel DAAL (インテル(R) DAAL を使用)] ドロップダウン・メニューから、適切なリンク方法 (例えば、[Multi-threaded Static Library (マルチスレッド・スタティック・ライブラリー)]) を選択します。

/Qdaal:sequential

インテル® DAAL のシーケンシャル・バージョンとリンクします。

/Qdaal コンパイラー・オプションの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』 (デフォルトの場所は C:\Program files (x86)\IntelSWTools\documentation_2016\ja\compiler_c\common\core\index.htm) を参照してください。

ステップ 2: 最初のインテル® DAAL アプリケーションの作成と実行

この短いアプリケーションは、インテル® DAAL でコレスキー分解を計算します。


/*******************************************************************************
!  Copyright(C) 2014-2015 Intel Corporation. All Rights Reserved.
!
!  The source code, information  and  material ("Material") contained herein is
!  owned  by Intel Corporation or its suppliers or licensors, and title to such
!  Material remains  with Intel Corporation  or its suppliers or licensors. The
!  Material  contains proprietary information  of  Intel or  its  suppliers and
!  licensors. The  Material is protected by worldwide copyright laws and treaty
!  provisions. No  part  of  the  Material  may  be  used,  copied, reproduced,
!  modified, published, uploaded, posted, transmitted, distributed or disclosed
!  in any way  without Intel's  prior  express written  permission. No  license
!  under  any patent, copyright  or  other intellectual property rights  in the
!  Material  is  granted  to  or  conferred  upon  you,  either  expressly,  by
!  implication, inducement,  estoppel or  otherwise.  Any  license  under  such
!  intellectual  property  rights must  be express  and  approved  by  Intel in
!  writing.
!
!  *Third Party trademarks are the property of their respective owners.
!
!  Unless otherwise  agreed  by Intel  in writing, you may not remove  or alter
!  this  notice or  any other notice embedded  in Materials by Intel or Intel's
!  suppliers or licensors in any way.
!
!*******************************************************************************
!  Content:
!    Cholesky decomposition sample program.
!******************************************************************************/

#include "daal.h"
#include <iostream>

using namespace daal;
using namespace daal::algorithms;
using namespace daal::data_management;

const size_t dimension = 3;
double inputArray[dimension *dimension] =
{
    1.0,  2.0,  4.0,
    2.0, 13.0, 23.0,
    4.0, 23.0, 77.0
};

int main(int argc, char *argv[])
{
    /* 配列から入力数値テーブルを作成 */
    SharedPtr<NumericTable> inputData = SharedPtr<NumericTable>(new Matrix<double>(dimension, dimension, inputArray));

    /* デフォルトの手法を使用してコレスキー分解を計算するアルゴリズム・オブジェクトを作成 */
    cholesky::Batch<> algorithm;

    /* アルゴリズムの入力を設定 */
    algorithm.input.set(cholesky::data, inputData);

    /* コレスキー分解を計算 */
    algorithm.compute();

    /* コレスキー係数のポインターを取得 */
    SharedPtr<Matrix<double> > factor =
        staticPointerCast<Matrix<double>, NumericTable>(algorithm.getResult()->get(cholesky::choleskyFactor));

    /* コレスキー係数の最初の要素を出力 */
    std::cout << "The first element of the Cholesky factor: " << (*factor)[0][0];

    return 0;
}
  1. 新しい C++ ファイルをプロジェクトに追加して、サンプルコードをペーストします。

  2. ファイルを保存します。

  3. アプリケーションをコンパイルして実行します。

ステップ 3 (オプション): 異なるコンパイラーでのアプリケーションのビルド

インテル® Parallel Studio の Microsoft* Visual Studio* C++ 統合コンポーネントをインストールしなかった場合、またはアプリケーションとリンクするインテル® DAAL ライブラリーをより細かく制御したい場合は、Visual Studio* プロジェクトを直接設定してください。

インテル® DAAL のスレッドモードとリンク方法に応じて、プロジェクトに次のライブラリーを追加します。

シングルスレッド (スレッド化されていない) インテル® DAAL

マルチスレッド (内部的にスレッド化されている) インテル® DAAL

スタティック・リンク

daal_core.lib

daal_sequential.lib

daal_core.lib

daal_thread.lib

ダイナミック・リンク

daal_core_dll.lib

重要:

シングルスレッド・モードを設定するには、インテル® DAAL のほかの呼び出しの前に daal::Environment クラスの setDynamicLibraryThreadingTypeOnWindows(SingleThreaded) メソッドを呼び出します。

daal_core_dll.lib

重要:

マルチスレッド・モードを設定するには、インテル® DAAL のほかの呼び出しの前に daal::Environment クラスの setDynamicLibraryThreadingTypeOnWindows(MultiThreaded) メソッドを呼び出します。

リンク方法に関係なく、インテル® DAAL ライブラリーが依存するライブラリーをプロジェクトに追加してください

  • インテル® コンパイラーの OpenMP* ランタイム・ライブラリー libiomp5md.lib
  • インテル® コンパイラーのインテル® TBB ランタイム・ライブラリー tbb.lib
プロジェクトを設定するには、次の操作を行います (Visual Studio* のバージョンによって多少異なります)。
  1. [ソリューション エクスプローラー] でプロジェクトを右クリックして [プロパティ] をクリックします。

  2. [構成プロパティ] > [VC++ ディレクトリ] を選択します。

  3. [インクルード ディレクトリ] を選択します。インテル® DAAL インクルード・ファイルのディレクトリー (%DAALROOT%\include) を追加します。

  4. [ライブラリ ディレクトリ] を選択します。daalvar.bat スクリプトで指定したアーキテクチャー・パラメーターと一致するインテル® DAAL ライブラリーを含むアーキテクチャー固有のディレクトリー (例えば、%DAALROOT%\lib\intel64_win) を追加します。

    マルチスレッド・ランタイム・ライブラリー libiomp5md.libtbb.lib を含むアーキテクチャー固有のディレクトリー (例えば、<install dir>\compiler\lib\intel64_win および <install dir>\tbb\lib\intel64_win\vc_mt) を追加します。

  5. [実行可能ファイル ディレクトリ] を選択します。インテル® DAAL ダイナミック・リンク・ライブラリーを含むアーキテクチャー固有のディレクトリー (例えば、<install dir>\redist\intel64_win\daal) を追加します。

    マルチスレッド・ランタイム・ライブラリーを含むアーキテクチャー固有のディレクトリー (例えば、<install dir>\redist\intel64_win\compiler および <install dir>\redist\intel64_win\tbb\vc_mt) を追加します。

  6. [構成プロパティ] > [Custom Build Step (カスタム・ビルド・ステップ)] > [Additional Dependencies (追加の依存ファイル)] を選択します。必要なライブラリーを追加します。 例えば、インテル® DAAL のマルチスレッド・ライブラリーをスタティックにリンクしてインテル® 64 アーキテクチャー向けのアプリケーションをビルドする場合は、daal_core.lib daal_thread.lib libiomp5md.lib tbb.lib を追加します。

ステップ 4: インテル® DAAL サンプルコードのビルドと実行

Visual Studio* で、<install_dir>\daal\examples\cpp フォルダーにある DAALExamples.sln ソリューション・ファイルを使用します。

Java* 言語

インテル® DAAL サンプルコードのビルドと実行

Java* のサンプルコードをビルドして実行するには、環境変数の設定時に daalvars.bat スクリプトで指定したアーキテクチャー・パラメーターに対応するバージョンの Java* 仮想マシンを使用してください。

  1. サンプルをビルドします。

    Java* のサンプル・ディレクトリーに移動して、launcher コマンドを build パラメーター付きで実行します。

    cd <install_dir>\daal\examples\java

    launcher.bat build %PATH_TO_JAVAC%

    コマンドを実行すると、実行ファイル *.class (例えば、CholeskyBatch.class) が

    <install dir>\daal\examples\java\com\intel\daal\examples\<example name> ディレクトリーに生成されます。

  2. サンプルを実行します。

    Java* のサンプル・ディレクトリーに移動して、make コマンドを run パラメーター付きで実行します。

    cd <install_dir>\daal\examples\java

    launcher.bat {ia32|intel64} run %PATH_TO_JAVAC%

    daalvar.bat スクリプトで指定したアーキテクチャー・パラメーターを指定します。

    指定したアーキテクチャーに応じて、.\_results\ia32 または .\_results\intel64 ディレクトリーにある <example name>.res ファイルに結果が出力されます。

ドキュメントおよびリソース

ドキュメント

説明

インテル® DAAL ユーザー・リファレンス・ガイド

次の情報が含まれます。

インテル® DAAL インストール・ガイド

製品で利用可能なインストール・オプションの説明とインストール手順が含まれます。

インテル® DAAL リリースノート

インテル® DAAL についての次の情報が含まれます。

  • 製品の新機能
  • ディレクトリー構成
  • ハードウェアとソフトウェアの要件へのリンク

<install dir>\daal\examples フォルダー

インテル® DAAL API の使用方法を説明するプログラムのコレクション。

C:\Program files (x86)\IntelSWTools\samples_2016\en\daal フォルダー (デフォルトのインストール・パスの場合)

プログラムに追加して Hadoop*、Spark*、MPI (メッセージ・パッシング・インターフェイス)、mySQL* とともに使用できる、さまざまなアルゴリズムのコードサンプルのコレクション。

日本語最新ドキュメント

日本語の最新ドキュメントを入手できます。

日本語最新情報

最新情報を日本語で参照できます。

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804