2021年11月のGreen500で、39.38GFlops/Wというスコアを出し、プリファードネットワークス(Preferred Networks:PFN)は業界を驚かせた。

次の表はGreen500の上位10システムをリストしたもので、1位はPFNのMN-3スパコンで電力効率は39.38GFlops/Wである。そして、2位はSamsungのSSC-21 Scalable Moduleで33.98GFlops/Wである。2位以下のシステムが2.5GFlops/W未満の僅差で並んでいるところで、1位と2位がその2倍の5.0GFlops/Wの差は驚異的である。

  • MN-3

    PFNのMN-3スパコン (出典:PFN資料)

また、MN-3は前回のGreen500の時と同じハードウェアでありながら、ソフトウェアだけの改善で29.7GFlops/Wから39.38GFlops/Wまでエネルギー効率を改善したのも驚異的である。

  • MN-3

    Green500のTop10システム。黄色のマーカーは前回から変更のあったシステム (出典:SC21におけるGreen500発表資料のコピー)

ということで、今回もMN-3スパコンがGreen500も首位として表彰された。

  • MN-3

    39.38GFlops/WでMN-3がGreen500のトップとして表彰された (出典:SC21におけるGreen500発表資料のコピー)

なぜPFNのスパコンは電力効率が高いのか?

なぜ、PFNのMN-3スパコンとその計算エンジンであるMN-Coreの電力効率が高いのかを、PFNの土井執行役のGreen500 1位受賞記念講演から探ってみたい。

  • MN-3

    Green500で1位になったチームは、そのシステムについて受賞記念の講演を行うのがGreen500の伝統となっている (出典:これ以降はすべてSC21におけるPFNの発表資料のコピー)

PFNであるが、東京大学の卒業生によって2014年3月に創立されたベンチャー企業である。最近、東大を退官された平木先生がPFNに入社され、MN-3の開発に協力しておられるが、PFNのCEOの西川氏は平木先生の教え子でもある。

  • MN-3

    PFNは2014年3月に西川氏、岡野原氏らによって設立された。トヨタなどとも対等に提携し、日本のユニコーン企業の呼び声が高い

MN-3スパコンはPFNの自社開発のマシンラーニングスパコンである。そしてそのアクセラレータであるMN-Coreは自社開発のアクセラレータである。MN-3ノードはMN-Coreボード4枚とXeon 8260M CPU×2(48コア)に384GB DDR4メモリを持つ。それに3TBのIntel Optane DCストレージクラスメモリを付けている。ノード間はMN-Core DirectConnectという112Gbps×2のネットワークで接続している。さらにノード間にはMellanoxのConnextX-6(100GbE)×2とオンボードの10GbE×2の接続を持っている。

  • MN-3

    MN-3スパコンの外観と、縮尺は異なるが4個のチップを搭載したMN-Coreボード

なお、MN-3スパコンは、1993年から稼働している初代地球シミュレータを設置するために作られた海洋開発研究機構のコンピュータルームの一部を借りて設置されている。MN-3スパコンの電力効率は高いが、センターとしては設計が古く、PUEはあまり良くないとのことである。

MN-3はマシンラーニングのために作られたアクセラレータスパコンであるが、PFNは、HPLを使ってGreen500の実行効率の改善を行った。次の図に書いたように、

  • 2020年6月:21.11GFlops/W
  • 2020年11月:26.04GFlops/W
  • 2021年6月:29.70GFlops/W
  • 2021年11月:39.28GFlops/W

と実行効率を改善して来た。2年前から見ると2倍に近いエネルギー効率の改善を行っている。

  • MN-3

    PFNはHPLを使ってエネルギー効率の改善のチューニングを行い、2年間で、おおよそエネルギー効率を2倍に改善した

MN-Coreはすべての演算器が並列に並んで同じ命令を実行する巨大なSIMD構造になっている。MN-Coreはキャッシュのようなヒットすればメモリが速く読めるというような構造は持っておらず、命令のフェッチや実行は完全に確定的に常に同じ時間を掛けて実行される。すべての演算器が同じ命令を実行するSIMDであるので、命令のフェッチ機能は1つあれば良い。

FP64で65GFlops/Wの電力効率が得られるのは、MN-Core部分だけの消費電力の場合で、MN-3全体ではメモリやその他の回路の消費電力が含まれるので、 40GFlops/W程度の効率になってしまう。

オンチップのネットワークで階層的にSIMD演算器が接続されており、BroadcastやAggregationも行うことができるようになっている。

  • MN-3

    オンチップのネットワークで、MN-Coreの演算器間の接続がなされており、BroadcastやAggregationも計算できるようになっている

MN-Coreの思想は計算に必須の機能だけをハード搭載し、完全にソフトウェアでその機能の使用をコントロールする。これにより、最小のハードウェアで演算を実行でき、電力効率を高めることができるという物である。これは神戸大学の牧野先生の考え方である。

  • MN-3

    MN-Coreの設計思想は必須の機能だけをハードウェアとして搭載し、ソフトウェアでそれらのハードウェアを完全にコントロールするというものである。この思想は、プロジェクトのメンバーの神戸大学の牧野教授の考えである

MN-3の電力測定環境は、当初はGreen500のレベル2であったが、2回目の測定から、より精度の高いレベル3にアップグレードした。次の写真はその時の様子を写したものである。

  • MN-3

    電力測定環境は、当初はレベル2であったが、2回目の測定からレベル3に拡張した。写真は、レベル3へのアップグレードの変更を行っている様子

2021年6月の測定はレベル3にアップグレードするので、すべてのサーバなどの機器の電力を実測するようにPDUへの接続などを追加している。

  • MN-3

    Zone 1とZone 2の600Aの分電盤から給電。Zone 2側は電力測定系や測定データベースなどにも給電している。スマートPDUで消費電力を測定しロギングを行っている

測定を自動化し、測定ごとにIDとタイムスタンプを付けた。そして、電力の測定値はSlackを通してポストし、電力測定の結果を全員で共有した。これは改善の結果を全員が理解するのに役立った。

  • MN-3

    消費電力の測定結果のレポートは自動化し、Slackを使って全員で共有した。個々の改善の効果が分かり有効であった

MN-CoreでのHPL実行は、

  • 2020年6月:21.11GFlops/W、効率41%
  • 2020年11月:26.04GFlops/W、効率53%(GEMM実行のスケジューリングを最適化)
  • 2021年6月:29.70GFlops/W、効率58%(さらに効率改善)
  • 2021年11月:39.38GFlops/W、効率64%(インタコネクトの改善、ソフトレベルクロックゲートの改善)
  • MN-3

    HPL性能改善のためのMN-Coreソフトウェアの改善

58%→64%への改善については、

  • +2%はDGEMMカーネルの改善、DGEMMと通信のオーバラップの改善
  • +3%はインタコネクトのバンド幅の改善と通信と計算のオーバラップの増加
  • +1%は他の部分でのソフトウェアの改善
  • MN-3

    58%→64%への改善の内訳

29.70GFlops/W→39.38GFlops/Wへの改善については、

  • +3.4GFlops/W(実行効率の改善効果)
  • +4.4GFlop/W(エネルギー効率の高い命令を生成、使用してない演算ユニットの停止、SRAMに替えてScratchpad FFを使用、データコピーのエネルギーを低減)
  • +1.9GFlops/W(コア電源電圧を低減、その他)
  • MN-3

    29.70GFlops/W→39.38GFlops/Wへの改善の内訳

MN-Coreの計算フレームワークは他のコンピュータとは異なる。実行は確定的でソフトウェアで完全にコントロールされる。MN-Coreの計算のやり方は独特であるが、チューニングを行うのにHPLを使うのは非常に有効であった。

  • MN-3