Facebookの大メモリ学習プラットフォーム「Zion」

Facebookは次世代の学習用プラットフォームであるZionについて発表を行った。現用のBig Basinはメモリが小さく、リコメンデーションにはメモリ不足で、それを解消する必要があったようである。

  • Hot Chips 31

    Facebookの次世代学習用プラットフォーム「Zion」について発表するMisha Smelyanskiy氏

Facebookでのマシンラーニングのパイプラインの使用率は2018年には30%であったが、2019年には50%に増えている。また、マシンラーニングのデータ量は1年で3倍に増えている。

この12ヵ月で、Facebookのランキングを担当するエンジニアは2倍に増え、学習を行ったワークフローは3倍、マシンラーニングの計算量も3倍に増加した。なお、増加が著しいのはリコメンデーションとのことである。ブラウザを使っていると、過去の購入履歴や訪問したWebサイトなどの情報から、興味のありそうな広告が次々と表示されてくるのを見ても、リコメンデーションがフル稼働していることが感じられる。

  • Hot Chips 31

    マシンラーニングのデータ量は1年で3倍に増加。ランキングのエンジニアは2倍、計算量は3倍に増えている (この連載のFacebookの部分のすべての図は、FacebookのMisha Smelyanskiy氏の発表スライドのコピーである)

次の図は、学習の各ステージが、ストレージ、ネットワーク、計算とメモリのどの部分に負荷が大きいかを示す図である。この図のように、ストレージ、ネットワーク、メモリ、コンピュートのすべての部分にストレスが掛かる。

一方、マシンラーニングのエンジニアは開発効率や開発の柔軟性が改善されることを期待している。このため、学習用プラットフォームの開発にはソフトウェアとハードウェアのコデザインが必要となる。

  • Hot Chips 31

    マシンラーニングでは処理のステップによって負荷のかかり方は異なるが、全体を見ると負荷が高い。一方、MLのエンジニアは、システムが使いやすくなることを期待しており、コデザインが必要となった

Facebookでは、ランキングやリコメンデーションにAIを使っている。また、イメージの分類、オブジェクト識別、ビデオ理解にもAIを使っている。さらに言語の翻訳や言語理解にもAIを使っている。

  • Hot Chips 31

    Facebookではランキングやリコメンデーション、コンピュータビジョン、言語の翻訳や、理解にAIを使っている。中でもリコメンデーションモデルの実行が最も重要なものである

ZionはCPUが8台、アクセラレータが8台というのが基本である。CPUの方は~100Wの消費電力であるが、アクセラレータは~200W程度を消費する。CPUメモリは大容量であるが、バンド幅の狭いDDR4が使われ、アクセラレータはメモリ量は小さいがバンド幅は大きいHBMが使われる。

そして、CPUとアクセラレータが使用するBFLOAT16のフォーマットを合わせておくことが重要である。

  • Hot Chips 31

    ZionではCPU8台、アクセラレータ8台が基本。CPUはメモリ量は大きいがバンド幅は小さいDDR4を使う。アクセラレータはメモリ量は小さいがバンド幅の大きいHBMを使う

そして、ZionではCPU同士を接続するCPU Fabricとアクセラレータ同士を接続するAccelerator Fabricがある。CPUファブリックのトポロジはTwisted Hypercubeで、キャッシュコヒーレントな通信を行う。アクセラレータファブリックは、現在は統一されておらず、アクセラレータごとにさまざまなものが使われている。

しかし、All-ReduceとAll-to-All通信ができることは必須である。

  • Zion

    ZionではCPUはCPU Fabricで相互接続され、アクセラレータはAccelerator Fabricで相互に接続される

そして、ZionではCPUにNICを接続し、ネットワーク接続でスケールアウトすることができる。

  • Zion

    ZionではCPUにNICを付けて複数のZionを接続した大きなネットワークを作ることができる

Zionの物理的な形状は次の図のようになっている。CPU側は1Uのマザーボードに2ソケットサーバを搭載し、それを4枚使用して8ソケットのシステムとしている。アクセラレータ側は、3U程度の箱に8個のOCPアクセラレータモジュールを搭載している。

  • Zion

    Zionの物理的な構成。下側は4枚の2ソケットのCPUボードで、その上にアクセラレータの箱が載るという構成になっている。アクセラレータモジュールは形状が決まっており、それに合致すれば組み込める

次の図はZionシステムのブロック図である。8個のCPUはCPU Fabricで接続され、8個のアクセラレータはAccelerator Fabricで繋がれている。そして、2台のCPUからPCIeスイッチに接続され、1台のPCIeスイッチから2台のアクセラレータに繋がっている。それに加えて4台のPCIeスイッチはPCIe×16で結ばれている。

  • Zion

    Zionのブロック図。CPUとアクセラレータはPCIeスイッチを介して接続されており、フレキシブルな接続ができるようになっている

アクセラレータはOCP Accelerator Moduleの形で使用される。世の中には多種のアクセラレータがあり、それらすべてを使えるようにするには大きなエンジニアリングリソースが必要である。これを減らす為、FacebookではOCP Accelerator Moduleという形で、共通のフォームファクタになるようにしている。

なお、この図には、AMD、Habana、Intel、NVIDIAの名前があがっている。

  • Hot Chips 31

    OCP Accelerator ModuleはFacebookが主導して規格が決められ、それに合致したアクセラレータが使用できる。この図では、AMD、Habana、Intel、NVIDIA…と書かれており、これらの各社のアクセラレータは使えるようになっており、それ以外の会社も将来には追加されるということであろうか

NVIDIAのP100 GPUを使うBig Basinプラットフォームでは、アクセラレータとしてはNVIDIAのGPUしか使えず、インタコネクトもNVLINKによるHypercube meshに決まっていたが、Zionでは各種のインタコネクトが使える。そして、Big Basinでは10~100GB程度のメモリしか使えなかったが、Zionでは100GB~1000GBレベルのメモリを使うことができる。そして、CPU側はBig Basinでは1個のCPUであったが、ZionではマルチCPUを搭載し、いろいろな構成が可能である。

  • Hot Chips 31

    2017年3月に発表されたBig Basinプラットフォームと今回のZionプラットフォームの比較。Zionは使えるメモリが増え、色々な接続トポロジが採れるようになる

結論であるが、ZionはFacebookの次世代の柔軟性の高い学習用のプラットフォームである。このシステムは大量のメモリを必要とするリコメンデーションモデルの実行をターゲットにコデザインで作られたものである。

そして、OCPアクセラレータモジュールの形であれば、どこのベンダーのアクセラレータでも組み込める。このシステムはより大規模なシステムにスケールアウトすることができるビルディングブロックともなっている。

  • Hot Chips 31

    ZionはFacebookの次世代の柔軟性が高い学習用のプラットフォームである。特に、リコメンデーションモデルの実行のためにコデザインを行った。OCPアクセラレータモジュールの規格に合えば、ベンダーに拘わらず使用できる。また、スケールアウトができるようになっており、大きなシステムの構成部品として使える

(次回は9月10日の掲載となります。)