Wave Computingは2010年に設立されたのであるが、最近までステルスモードで活動してきており、主要な学会での発表は、今回のHot Chips 29が初めてである。

Hot Chips 29でWave ComputingのDPUを発表するChris Nicole CTO

Wave Computingはベンチャーキャピタルから資金を得て、2010年に設立された。現在、従業員は、データフロー、データ科学、システムの専門家からなる53人のチームである。

従来のプロセサと比べると最大1000倍の学習性能を持つ「Dataflow Processing Unit(DPU)」というアーキテクチャを考案したという。DPUは粗粒度の再構成可能アレイ(Coarse Grain Reconfigurable Array)アーキテクチャである。そして、この巨大なプロセサアレイにデータフローグラフを静的にマップしてニューラルネットの学習を実行する。

これまでステルスモードであったが、現在は、DPUチップができ、先行顧客のアーリーアクセスプログラムを始めている状態であるという。

Wave Computingは2010年に設立され、現在、53人のチームで開発を行っている。従来のやり方に比べて最大1000倍の性能を持つDataflow Processing Unit(DPU)というアーキテクチャを考案し、現在はアーリーアクセスプログラムを開始している (このレポートのすべての図は、Hot Chips 29におけるChris Nicole CTOの発表スライドのコピーである)

マシンラーニングの分野では、ディープニューラルネットの学習に長い時間が掛かるのが問題となっている。エッジで発生するデータの量は増加の一途で、現在のやり方ではデータセンターの処理が間に合わなくなってしまう。

この図はGoogleの資料の引用であるが、CPUとGPUでの学習処理の様子を示している。この図に見られるように、GPUがCPUからの指示を待っている時間がかなり多く、ムダが多い。このため、学習の性能が上がらないことになってしまう。

CPUとGPUのヘテロシステムで学習を行っている様子。GPUがCPUの指示を待っている時間が多い。これはGoogleの発表資料を引用したものである

人工ニューロンの間をつないだディープラーニングネットワークは、 データフローネットワークである。これをプログラムにすると、重み(Weight)と入力(Input)を掛けて(Times)、それらを集計(Plus)して、SigmoidとかSoftmaxとかの関数を適用するグラフで表すことができる。

これをランタイムと処理データなども加えたグラフに変形する。そして、それぞれの処理を実行するDPUのハードウェアにマッピングして実行する。このように、DPUのハードウェアがグラフを記憶しており、グラフにしたがってデータを送りながら処理を行っていくので、CPUの介入は必要なく、DPUがCPUの指示待ちになって遊んでしまうことがない。

GoogleのTPUなどは、入力ベクトルに重みのマトリクスを掛けてニューロンの出力値を計算する。接続が存在しない部分は重みの係数はゼロであるがこれも計算してしまう。

これに対して、Wave Computingのデータフロー方式では、接続がない部分は信号が伝わらず、計算を行わない。このため、ゼロを掛けるというムダな計算を避けて演算回路の実効性能を高めることができる。

なお、DPUのやり方で推論がうまく処理できることは分かったが、この発表では、学習のためのバックプロパゲーションをどのように行うのかについては説明がなく、どのように処理が行われ、なぜ、高い性能が得られるのかは分からなかった。

ディープラーニングを行うデータフローグラフをフレームワークでプログラムし、それをWaveFlowエージェントの接続にランタイムで変換する。そして、DPUで実行する