インテル® DAAL プログラミング・ガイド

インテル® DAAL について

インテル® DAAL は、データの取得から、前処理、変換、データマイニング、モデリング、検証、意思決定まで、すべてのデータ解析段階をカバーする、インテル® アーキテクチャー向けに最適化されたビルディング・ブロックのライブラリーです。さまざまなインテル® プロセッサーで最高のパフォーマンスが得られるように、インテル® DAAL はインテル® MKL およびインテル® IPP の最適化アルゴリズムを利用しています。

Data analytics stages

インテル® DAAL は、一部のデータ解析段階が (データが生成され、最終的に消費される場所に近い) エッジデバイスで実行される際のエンドツーエンド解析の概念をサポートします。具体的には、インテル® DAAL アプリケーション・プログラミング・インターフェイス (API) は、特定のクロスデバイス・コミュニケーション・テクノロジーに依存しないため、異なるエンドツーエンド解析フレームワーク内で使用できます。

End-to-end analytics

インテル® DAAL は、次の主要コンポーネン

ト (データ管理、アルゴリズム、サービス) から構成されています。

Intel® DAAL components

データ管理コンポーネントには、データの取得、前処理と正規化、(サポートしているデータソースにより行われる) 数値形式へのデータ変換、モデル表現用のクラスとユーティリティーが含まれます。データ管理コンポーネント内の NumericTable クラスおよびその派生クラスは、インメモリー数値データ操作に使用されます。Model クラスは、実際のデータが不足、不完全、ノイズが多い、利用不可能な場合にライブラリーを使用できるように、実際のデータを模倣してコンパクトな方法で表します。これらはアルゴリズムでデータセットを処理するための重要なインターフェイスです。DataSourceDictionary クラスと NumericTableDictionary クラスは、特定のデータ特徴へのアクセス、特徴数の設定と取得、新しい特徴の追加のような、辞書操作の一般的なメソッドを提供します。

アルゴリズム・コンポーネントは、データ解析 (データマイニング) およびデータモデリング (訓練と予測) 用のアルゴリズムを実装するクラスから構成されます。これらのアルゴリズムには、行列分解、クラスタリング、分類、回帰アルゴリズムと相関ルールが含まれます。

アルゴリズムは、次の計算モードをサポートしています。

バッチ処理モードでは、アルゴリズムはデータセット全体を処理して最終結果を生成します。その時点でデータセット全体が利用可能でないか、データセットがデバイスメモリーに収まらない場合、シナリオはより複雑になります。

オンライン処理モードでは、アルゴリズムは部分結果を段階的に更新して (最後のデータブロックを処理すると完了します) デバイスメモリーに転送されたブロックのデータセットを処理します。

分散処理モードでは、アルゴリズムは複数のデバイス (計算ノード) に分散されたデータセットを処理します。アルゴリズムは各ノードで、最終的にマスターノードの最終結果にマージされる、部分結果を生成します。

使用方法に応じて、アルゴリズムは実際のデータ (データセット) とデータモデルの両方を処理します。解析アルゴリズムは通常、データセットを処理します。訓練アルゴリズムは通常、データセットを処理して適切なデータモデルを訓練します。予測アルゴリズムは通常、訓練されたデータモデルと作業データセットを処理します。

訓練アルゴリズムで生成されたモデルは、モデルを特徴付けるメトリックを生成するインターフェイスに関連付けられます。これらのメトリックは、品質を把握するためにモデルの作成中に使用できます。あるいは、実際のデータとデータを表すモデル間の一致率を追跡するためにプロダクション・モードで使用できます。

サービス・コンポーネントには、データ管理およびアルゴリズム・コンポーネントで使用されるクラスとユーティリティーが含まれます。これらのクラスにより、メモリー割り当て、エラー処理、コレクションや共有ポインターの実装を行うことができます。コレクションにより、統合された方法で、異なるタイプのオブジェクトを格納することができます。インテル® DAAL では、コレクションはアルゴリズムの入出力処理とエラー処理に使用されます。インテル® DAAL は、割り当て解除のようなメモリー管理操作に必要なメモリー処理が可能になるように、共有ポインターを実装します。

データ管理、アルゴリズム、サービス・コンポーネントで実装されたクラスは、最も重要な使用シナリオをカバーし、直接 API 呼び出しにより複雑なデータ解析ワークフローをシームレスに実装できます。ライブラリーは、ライブラリーの特定のクラスとメソッドを再定義することにより API をカスタマイズできる、オブジェクト指向のフレームワークです。

最適化に関する注意事項

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

改訂 #20110804