検索
ニュース

ベクトル型コンピュータで、機械学習を高速実行実行時間は従来の50倍以上

NECは、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発した。従来の同等システムに比べて、機械学習の実行時間は50倍以上になるなど極めて速い。

Share
Tweet
LINE
Hatena

「疎行列」に着目した演算技術と通信技術を開発

 NECは2017年7月、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発したと発表した。従来の同等システムに比べて、機械学習の実行時間は50倍と極めて速い。

 NECは、数値計算領域を得意とするベクトル型コンピュータの開発に注力している。今回の技術は、機械学習など大規模データ分析の領域にも、その応用分野を広げていくために開発した。


カード搭載型ベクトルプロセッサの外観

 ベクトル型コンピュータは、複数の処理を同時に実行することで高速化を実現している。このため、一回の処理量が十分に大きくないと効率は悪くなる。ところが、機械学習で用いられるデータ「疎行列」は、ゼロでない部分の数が行ごとに大きく異なる。このため、単純に行単位で処理を行うと、ゼロでない部分が少ない行では、処理効率が低下するという課題があった。

 そこで今回は、ゼロでない部分の数に応じて、列単位で処理を行うフォーマットと行単位で処理を行うフォーマットを使い分ける「ハイブリッドフォーマット」を開発した。これにより、データの処理量を常に大きく保つことができ、ベクトル型コンピュータでも高い処理効率を維持することが可能になるという。


疎行列演算を高速化するデータ処理方式 出典:NEC

 もう1つはプロセッサ間の通信量を削減する技術である。機械学習を高速に実行するため、データを分割して複数のプロセッサで並列処理を行い、最終的に処理結果を1つにまとめる。この時、プロセッサ間の通信時間が重要となる。分割されたデータの中には、どの行にも値を持たない列が発生する。値を持たない列は処理結果が更新されないため、機械学習処理ではこれらの部分を通信から省くことで、通信量の削減を行うという。


通信量の削減を実現するデータ通信方式 出典:NEC

 NECは、これらの技術を利用するためのミドルウェアも用意した。複数のプロセッサにまたがる並列処理を容易に記述できるよう設計されており、「C++」と「MPI」を用いて機械学習用のプログラムに実装することが可能となる。また、「Spark」や「Python」が提供している機械学習ライブラリーと同じ形式で呼び出すことができる。

 同社は開発した技術を搭載し、機械学習に要する実行時間も検証した。開発したミドルウェアをNEC製ベクトル型コンピュータ「SX-ACE」上で実行すると、複数サーバを接続したクラスター上でSparkを実行した場合に比べて、CPUコアが64個と同数のシステムでも、その処理速度は50倍以上になることを確認した。


同一コア数のプロセッサにおけるデータ処理速度の比較 出典:NEC

 今回の技術を用いると、Web広告出稿の最適化やレコメンド、文書分析などの分野で、時間短縮が可能になるとみている。また少数のサーバで、より安価な分析システムを構築することができるという。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る