森山和道の「ヒトと機械の境界面」

PFNの大規模分散深層学習専用プライベートスパコン「MN-2」潜入レポート

 ディープラーニング(深層学習)技術の研究開発および関連技術の実用化を進めるスタートアップとして知られる株式会社Preferred Networks(PFN)は、自社専用のスーパーコンピュータを運用している。2019年7月に稼働した「MN-2」は、CPUを5,760コア、NVIDIA V100 Tensor コア GPUを1,024基搭載したマルチノード型GPGPU計算基盤である。おもに深層学習の「学習」に用いられている。

 「MN-2」の理論上のピーク性能は、深層学習で利用される混合精度浮動小数点演算において約128PFLOPS。PFNは、「MN-2」以前にも「MN-1」(2017年9月稼働)、「MN-1b」(2018年7月稼働)を稼働させ運用中だ。合算するとGPU数換算で合計2,560基となり、PFNは合計約200PFLOPSの計算資源を保有していることになる。

 PFNは、「MN-2」の上でオープンソースの深層学習フレームワーク「Chainer」を活用し、大量の計算資源を必要とするパーソナルロボットや交通システム、製造業、バイオ・ヘルスケア、スポーツ、クリエイティブ分野での研究開発をより一層加速させると発表している。

 「MN-2」は物理的には国立研究開発法人海洋研究開発機構 横浜研究所 シミュレータ棟内に構築されている。「地球シミュレータ」の横である。あくまでPFN専用のスパコンであり外部には公開されていないが、今回特別に取材が許可され、稼働中の「MN-2」を見学することができたのでレポートする。

JAMSTEC横浜研究所シミュレータ棟

深層学習専用スパコン「MN-2」

PFNのプライベートスパコン「MN-2」

 JAMSTEC横浜研究所シミュレータ棟は、学術計算を行なうスパコン専用の建物だ。床は高床式で、冷気が下から吹き上げて天井側から熱を回収する仕組みとなっている。そのため、なかはつねに空調の音が響いている。照明は外部からライトチューブで導かれており、ノイズからスパコンを守っている。土台は免震、外装はアルミメッキ鋼板で電磁シールドされている。床や壁にも静電気などからコンピュータを守る素材が使われている。

 「MN-2」のGPUサーバーは1台に8GPUを搭載しており、消費電力は1台あたり3.5kW(定格)。1ラックあたりの搭載数は4ノードで、つまり1ラックあたりでは32台のGPUが搭載されている。この数は床の耐荷重、電源供給/熱容量(排熱)などを考慮して決めたという。高さは37Uで、一般的なスパコンのラック(42U)よりは少しだけ低い。「MN-2」は、このGPUラックを16ラック並べたものを、背中側(排気側)を向かい合わせて2列並べた配置で設置されいる。合計32ラック128ノードだ。ラックは日東工業株式会社製。

GPUサーバー
1ラックに4ノードを搭載

 「MN-2」は、4ラックが1個の「ゾーン」となっている。この「ゾーン」というのはシステム構成を考えるときのPFN独自のブロック単位だ。各ゾーンに分けるほうがサーバー管理上も楽なのだという。障害が検知された場合は、そのサーバーはリタイアさせてジョブが割り当てられないようにして、必要であれば後日、保守交換する。基本的に保守交換は業者に任せている。

1ノードには8GPUが搭載されている
4ラックで1個のゾーンとして管理している

 冷却は空冷方式だ。背面を向かい合わせたラック間の通路に立ってみると、両脇から温かい空気が噴き出してくるのがわかる。同時に、その空気はシミュレータ棟自体の下から上へつねに吹き上げている空調によって吹き上げられていく。ラックの両端にはドアがあり、熱気は横には流れないように工夫されている。

熱風が噴き出す背面を向かい合わせた通路部
ドアで熱気を横に流れ出さないようにしている

 また、ラックの背面には上向きのフィンが設置されており、自然と熱風が上へと向かうようになっている。通路中央に立つと、体の脇は暖気を吹きつけられているが、なかはつねに吹きっぱなしの冷気にさらされて涼しい。ちなみにフィン部分はマグネットになっていて簡単に取り外しができる。もちろん事前に熱のシミュレーションも行なった上で設計されている。

ラック背面の上向きフィンで排気を上方に流す
フィンマグネットで簡単に脱着可能

 訪問したときは「今はおもにインターンが使っている」時期とのことで、ユーザーがあまり使い慣れておらず、それほどの負荷でもなかったようだ。だが全開で計算負荷がかかっているときにはファンの音が「ジェットエンジンのような勢い」で回るそうだ。GPU計算の手前で詰まってしまうような計算処理を投げてしまうと、そこがボトルネックになってしまうので、GPUにそれほどの負荷がかからない。GPUに負荷をかけるのも、それなりの技術スキルが必要であり、それを磨く必要があるのだという。

深層学習の高速化に特化したインターコネクト

Preferred Networks リサーチャー 土井裕介氏。「計算」全般を担当しているとのこと

 案内してくれたPFN リサーチャーの土井裕介氏にどこが一番の技術的なポイントだったのかと質問すると、しばらく考えたあとで「全体」という答えが返ってきた。「あっちもこっちも一所懸命やらないと、全体としてうまく回らないんです。スケジュールと予算があり、機能があり、性能がある。全部を見ながら、ああでもないこうでもないとやってました」。

 だがなかでも「冒険」をしているのはネットワークだという。「Infinibandをなくすのは、深層学習やスパコン系の人からすると大きな決断なんです。それをきちんと性能を出すために社内のソフトウェアエンジニアが総がかりでやりました。たとえばベンダーさんがつくったソフトウェアスタックにバグがあって動かないといったことも含めてトラブルシュートして性能を出しています。ある程度、自前で作り込んでいかないといけない部分もありました」(土井氏)。

 ハイパフォーマンスコンピューティング(HPC)では計算機を相互接続する「インターコネクト」が重要になる。MN-2のGPUノード間インターコネクトは、遠隔ノード間での直接メモリアクセス (RDMA)を実現するネットワークプロトコルの1つで、Ethernet上で低遅延/高スループットを実現する方式の「RoCEv2(RDMA over Converged Ethernet)」を採用している。それに併せて、1ノードあたり100Gigabit Ethernetを4本搭載した。PFN独自のチューニングを行なうことで、マルチノードの高速処理を実現した。

 スーパーコンピュータでは巨大シミュレーションを連続的に分散実行するようなワークロード(作業負荷)が多いが、深層学習においては、学習途中のパラメータを適時同期するようなワークロードが多い。データセットのロードとパラメータ交換が多く、パケットサイズが大きくなり、バンド幅が重要になる。

 PFNではファイルシステムは分散処理技術のHadoopなどで使われているHDFSをメインに利用して、ローカルのデータキャッシュを活用する方向で検討している。インターコネクトには一般的によく使われるInfinibandを廃し、Ethernetを全面的に使うことにして「RoCEv2」を採用した。一部を除けばInfinibandと比べても性能的には遜色ないという。

インターコネクトには「RoCEv2(RDMA over Converged Ethernet)」を採用

 同時に、総容量は物理10PBを超える「ソフトウェア・デファインド・ストレージ(分散データストレージの使用効率を高めるためソフトウェアにより一元管理されたストレージシステム)」を独自に構築して機械学習時のデータアクセスを最適化することで、学習の高速化を図っている。

無駄なものを買わないのであれば「自前のほうが安い」

シミュレータ棟見学室から見た様子

 なぜPFNは独自の計算インフラを持つのか。1つ目の理由は、ソフトウェアからハードウェアまで全部のコントロールを握ることで、研究開発の自由度を高めること、そしてそれによって顧客に提供する付加価値を高めることだ。

 たとえば、Intelの2世代前のCPUではNUMA(Non-Uniform Memory Access)のデフォルトのスヌープモードの設定をBIOSから変更しないと深層学習の性能が出なかった。そういったところにまできちんと踏み込んでチューニングして、計算性能を出す。それをきちんとやりぬくためには自前の設備が必要だと考えたのだという。

 もう1つは、PFNが作っている「MN-Core」のような自前の専用ハードウェアを活用するためには、まずは自前の設備が必要だということ。「MN-Core」はまだハードウェアとして「できたて」なので、外部にポンと出せるようなものではない。ソフトウェアのフレームワークも作り込まないといけない段階であり、「世間のみなさんのワークロードがそのまま載るとは思ってない」とのこと。

 一般論だが、それぞれのスパコンで速度を出すためにはチューニングが必要になる。「MN-Core」はPFNが作ったコアなので、当然、自前ですべて作らなければならない。将来はパートナー企業と巡り合ってクラウド化しようという話が出てくるにしても、それらをすべて乗り越えたあとになるという。

 そして、コストも理由の1つだ。PFNのような使い方をするのであれば、自前で設備を持ってしまったほうがクラウドよりも安いと判断した。PFNは日本一のユニコーン企業と言われている一方で、オフィスの装飾などにカネをかけていないことでも知られているが、これもやはり、無駄なものを買わずに必要なものだけにお金を使うためだという。

 「われわれは言ってしまえば計算力を売っているような会社です。なので、無駄なものを買わないのであれば、自前でそろえたほうが安い。速いということには色んな意味がありますが、最新のハードウェアをいち早く事業に投入できるという意味もあります。これはさまざまなベンダーさんにご協力いただいているからできることです」(土井氏)。

独自開発深層学習プロセッサ「MN-Core」を使った「MN-3」は2020年春に稼働予定

MN-3を設置する予定の空間

 7月から稼働を開始した「MN-2」の構築と並行して、PFNが独自開発し、2018年12月に「SEMICON Japan 2018」で発表した、行列演算に最適化したチップ「MN-Core)」を使ったプライベートスーパーコンピュータ「MN-3」も、2020年春には稼働予定だ。1,000ノードを超える専用サーバーからなる「MN-3」の計算速度は、最終的に2エクサフロップスまで拡大することを目標にしている。

 「MN-3」もJAMSTEC横浜研究所シミュレータ棟内で構築され「MN-2」と連携稼働する予定だ。そして「MN-1」および「MN-1b」とも閉域網で接続され、活用される。

2018年のSEMICONジャパンで参考出展されたMN-Coreとボード
同 MN-Coreサーバー

 「MN-3」以降では、それぞれ得意分野の異なる「MN-Core」と「GPGPU」を組み合わせて利用することで、より効率的な計算環境の構築を目指す。具体的には、ソフトウェア開発のコストをかけてでも最適化したい計算は「MN-3」で行ない、それ以外の部分は従来どおりGPGPUを活用する。

 とくにGPGPUよりもMN-Coreの性能が上回るだろうと考えられている分野は画像認識系の学習だ。パーソナルロボットや自動運転などで必要な技術である。「MN-Coreはコンボリューションの計算に特化した回路になっているので、そういった計算を中心にワークロードを移植していくことになると思います」(土井氏)。

 大雑把に言って現在最速のGPGPUの倍くらいの計算量の性能差があり、その分、良いモデルを高速で作ることができるという。