Japan
サイト内の現在位置
GPUとは異なる進化を遂げた新世代ベクトルプロセッサ
NECの最先端技術2017年10月25日
AI技術に欠かせない機械学習用のプロセッサに、新たな選択肢が生まれました。近年普及が進む計算用GPUでは効果が出にくかった分野でも、圧倒的な処理スピードアップと省コストを実現する新世代ベクトルプロセッサについて、研究所の荒木拓也さん(プロフィール)に聞きました。
並列処理が得意な新世代プロセッサ
―― ベクトルプロセッサの特長とは何でしょうか?
ベクトル型演算は、データを一度にまとめて演算する並列処理に優れたアーキテクチャなんです。一昔前まではスーパーコンピュータというとベクトル型を採用するものがほとんどでした。その後はデータを分割して逐次的に処理していくスカラ型と呼ばれる構造が主流になりましたが、2000年前後からプロセッサ単体での処理速度はすでに頭打ちになり、現在はいかに並列処理するかという点が重要なフェーズへと移行しています。再び、並列処理が得意なベクトル型コンピュータの可能性が見直される時代になったわけですね。NECは、昔からベクトル型コンピュータの可能性を信じて一貫して開発を続けてきました。
―― CPUにかわる高性能プロセッサというと計算用GPUもありますが、その違いは?
GPUは、演算器を詰められるだけ詰め込んで「ピーク演算性能」を上げることに注力したハードウェアです。そのため、高い演算性能が求められるディープラーニングでは、非常に効果的なプロセッサですね。特に、画像や映像などのデータを扱う際には大きな力を発揮します。
それに対してベクトル型プロセッサは、メモリから演算器に対してどれだけ多くのデータを供給できるかという「メモリバンド幅」を重視しています。もちろん、ピーク演算性能もCPUに比べれば高いのですが、それ以上にメモリバンド幅が非常に高いんです。より多くのデータをメモリから供給することができるぶん、演算器が遊んでしまうことなく性能をフルに活かした並列処理をすることができます。
これによって、ベクトル型プロセッサはディープラーニング以外の機械学習で非常に大きな効果を発揮します。たとえばWeb広告の最適化やECサイトでのレコメンド表示、ニュースサイトにおけるカテゴリー分類など、すでに活用が進んでいる機械学習において、すぐにでも大きなインパクトを与えられるものになっています。現在多数のサーバーで構成される大規模なクラスターを活用して機械学習を行っている方であれば、確実にスピードアップと省コストを実現できるはずです。
SparkやPythonをそのまま利用可能
―― 既存の機械学習のシステムとは連携できますか?
いま機械学習において一般的に使われているSpark(注1)のユーザーであれば、そのままご利用いただくことが可能です。今回発表された製品を購入いただいて接続すれば、Sparkから普段通りにご活用いただけるようなミドルウェアを開発しているので、ハードウェアの違いを意識することはありません。
また、Python(注2)でもscikit-learn(注3)のインターフェースに合わせていますので、特別な設定や操作を意識することなく、これまで通りお使いいただけるようになっています。
疎行列処理におけるムダを省略して高速化
―― ベクトル型演算の処理効率はどのように改善したのでしょうか?
機械学習で扱われる大規模データによく見られる「疎行列(注4)」の特徴に着目した二つのブレークスルーによって、処理効率を大きく改善させています。
一つは、演算器の性能を活かしきるように列単位と行単位で処理を分割し、処理量を高い水準で保つ「ハイブリッドフォーマット」です。一度に並列処理を行うベクトル型演算では、処理量を高水準に保ってこそ、本来の性能が発揮されます。しかし、機械学習では処理量に偏りが生じる疎行列を扱うことが多いため、どうしても処理にムダが生じてしまうことが多かったんです。今回開発した技術では、これを行単位と列単位で分割することで1回の処理量を高レベルで保てるように工夫しています。
ハイブリッドフォーマットの開発により、一つのプロセッサにおける処理は速くなりましたが、もう一つ重要なことは各プロセッサの通信です。機械学習では、演算によって導いた値をまとめあげたあと、さらに各プロセッサに分配して再度演算をかけ、学習が収束するまで何度も処理を繰り返す必要があるため通信速度は非常に重要な要素となります。
今回開発した技術では、疎行列において値のない列は対応する結果について通信を行う必要がないことに着目し、値の存在する列のみ通信するようにしています。これにより、1回の通信量が100MBから5MBに削減できたデータもありました。
スーパーコンピュータ級の性能がより身近に
―― どんなお客様にお使いいただきたいですか?
ベクトル型コンピュータは、これまでスーパーコンピュータの分野で開発してきたアーキテクチャでした。しかし、今回の技術によって、ハードウェアの製品ラインアップにはタワー型やラックマウント型も加わってきます。すでにNECのベクトル型スーパーコンピュータSX-ACEをご活用いただいていたお客様だけでなく、現在大規模なクラスターを組んで機械学習に取り組まれているお客様にとっても、処理速度の向上や省コスト・省スペースに貢献できると思います。たとえば、ECサイトを扱う企業様ではよりタイムリーなレコメンド提案、Web広告を扱う企業様では、最適で効率的な広告表示など、建設的なご提案が可能です。
また、従来はコストが高くて導入が叶わなかったようなお客様でも、身近にご活用いただけるような価格帯になりました。高速処理できるコンピュータとして新しい選択肢をご提供できるものを開発できたと思っておりますので、ぜひお気軽にお問い合わせいただきたいですね。
- (注1)Apache Software Foundationが開発・公開しているオープンソースの分散処理基盤。
- (注2)データ分析などでよく用いられるプログラミング言語。
- (注3)Pythonのオープンソース機械学習ライブラリ。
- (注4)行列のごく一部だけに値があり、それ以外の部分はゼロとなる行列。たとえばECサイトでのユーザー評価では人気商品に評価が集中し、評価がない商品も多く生じる。
- ※本ページに掲載されている情報は、掲載時の情報です。
お問い合わせ