この記事は、インテルの The Parallel Universe Magazine 26 号に収録されている、インテル® パフォーマンス・ライブラリーを利用したビッグデータ時代のアプリケーションの課題への取り組みに関する章を抜粋翻訳したものです。
現代の社会では、天気予報から救命薬の発見に至る広範な分野において、さまざまなエンジニアリングの問題を解決するため、コンピューターへの依存度が高まっています。私たちは今、意思決定や複雑な問題を解くことにおいて、マシンが人々と同等またはそれ以上の能力を発揮するという、劇的な変化を目の当たりにしつつあります。すでに、Jeopardy* や囲碁では、コンピューターがトッププレーヤーに勝利を収め、自動運転車がカリフォルニア州の道路を走行しています。これらはすべて、(ムーアの法則による) ペタフロップ・レベルの計算能力と、マシンラーニング・アルゴリズムのトレーニングに利用可能な膨大な量のデータにより実現されます。
インテルは、今後のマルチコア/メニーコア計算プラットフォームのハードウェアおよびソフトウェア・アーキテクチャーの課題に取り組むため、最先端の学術研究者および業界関係者と緊密に協力しています。また、マシンラーニングの複雑さに対応できるように、インテル® Data Analytics Acceleration Library (インテル® DAAL) やインテル® マス・カーネル・ライブラリー (インテル® MKL) などのインテル® ソフトウェア・ツールを利用して開発者がパフォーマンスの最適化を行えるように支援しています。
マシンラーニングの課題
この 10 年間、マシンラーニングは急激に成長しました。この成長は、膨大な量のデータを生成するインターネットによって後押しされました。データからパターンを抽出し、その情報を適用して予測するため、新しいアプローチとアルゴリズムが開発されました。そして、計算能力の指数関数的成長により、それらのアルゴリズムを膨大なデータセットに適用して、有用な予測を行うことが可能になりました。ディープ・ニューラル・ネットワーク (DNN) は、マシンラーニング分野の最先端のアルゴリズムです。1990 年代後半に業界での採用が進み、当初は銀行小切手の手書き文字認識などのタスクに利用されていました。ディープ・ニューラル・ネットワークは、このタスクにおいて人と同等またはそれ以上の能力を提供します。今日 DNN は、画像認識、ビデオおよび自然言語処理、自動運転などに必要な複雑な視覚理解の問題の解決に使用されています。DNN には、非常に多くの計算リソースと処理データが必要です。一例として、最新の画像認識トポロジー AlexNet のトレーニングには最新の計算システムで数日を要し、1400 万を上回る画像を使用します。この複雑さに対応するには、トレーニング時間を短縮し、産業分野のニーズに応えることができる高度に最適化されたビルディング・ブロックが必要です。
インテル® MKL
インテル® MKL は、インテル® アーキテクチャーおよび互換アーキテクチャー向けのハイパフォーマンス数学ライブラリーです (図 1)。現在および将来のインテル® プロセッサー向けに最適化された一般的な密 (BLAS、LAPACK) およびスパース (スパース BLAS、インテル® MKL PARDISO) 線形代数ルーチン、離散フーリエ変換、ベクトル演算、統計関数の実装を提供します。インテル® MKL は、命令/スレッド/クラスターレベルの並列性を利用して、ワークステーション、サーバー、スーパーコンピューター上でさまざまな科学、工学、金融アプリケーションのパフォーマンスを向上します。
インテル® MKL は、ハイパフォーマンス・コンピューティング (HPC) 向けに設計されていますが、その機能は数学と同様にあらゆるものに利用できます。行列-行列乗算、高速フーリエ変換 (FFT)、ガウス消去法のような関数は、数学や工学関連の多くの問題の基礎となるだけでなく、マシンラーニング・アルゴリズムの基礎にもなります。インテル® MKL 2017 には、主なマシンラーニング・アルゴリズムに利点をもたらす最適化された機能に加えて、マシンラーニングに固有の計算ニーズに対応する新しい DNN 拡張が含まれています。ここでは、ディープ・ニューラル・ネットワークの拡張と行列-行列乗算の改善点について説明します。
インテル® MKL による DNN の高速化
インテル® MKL の DNN プリミティブ
ディープラーニングは、複数の処理層から成るグラフ構造を使用して、ハイレベルの抽象化をモデル化するマシンラーニングの一種で、データセンターで急速に採用が進んでいます。このアプローチは、生物が視覚野を通して現実を認識する方法からアイデアを得て開発されました。画像/ビデオ認識、自然言語処理、レコメンダー・システムなどのアプリケーションで幅広く活用されています。これらのワークロードは、多数のアルゴリズムを利用しており、特に多次元畳み込みと行列-行列乗算に依存しています。畳み込みは行列乗算として表現することができますが、場合によっては、直接畳み込みとして実装したほうが、現代のアーキテクチャーで大幅なパフォーマンスの向上を達成できる可能性があります。