Blog

Preferred Networksは,2019年にMN-2を稼動させました.MN-2は1024基の NVIDIA V100 GPUを搭載するクラスタで,現在もMN-1と共に、PFNの主要な負荷を担っています.MN-2に引き続いて,次世代のPFNの計算基盤として,神戸大学の牧野教授のグループと共同で開発した MN-Core™ を計算アクセラレータとして採用した計算機クラスタ MN-3 を稼動させます.

計算基盤担当の土井といいます.前回PFN blogを書いたのはMN-2のときなので, だいたい1年近く前になると思います.その後世の中も大きく変化しましたが, PFNの計算機クラスタも一つの変革期を迎えます.PFNの計算アクセラレータの 計画は2017年から本格化しましたが,その成果の一つがMN-Coreです. そして,MN-Coreを利用した計算機クラスタ MN-3 は,2018年末の 展示会(セミコンジャパン)のPFN CEOの西川の基調講演で登場を予告したものです. 今回ようやく,MN-Coreを利用したクラスタの第一期構築分が動きはじめたので, これについて共有させてください.

MN-Core Server

構成

MN-3 第一期構築分(以下簡単のため MN-3a と呼びます)は,以下のような構成になっています. 計算ノード32ノードを1つのゾーンとして,MN-3aでは1ゾーンと半分(16ノード)を構築しました. また,写真には入っていませんが,別のラックにMN-3のspine Ethernet switchが入っています.

MN-3の構成

計算ノードにはMN-Coreが4つ搭載され,1ノードあたり理論上約2Pops(半精度,以下同じ)の 計算能力を持ちます. ラック一つには4台の計算ノードが搭載されるため,ラック1つあたり約8Pops, ゾーンあたりで約64Popsの計算能力を持ちます.理想的すぎてあまり意味のない数字ですが、 仮に効率100%で計算できたとすると,ImageNet on ResNet50 / 90 epochの有名なトレーニングの ベンチマーク相当の計算が30秒ちょっとで実行できることになります.もちろん,実際には通信, データ供給,その他さまざまなオーバーヘッドが存在するので,これは不可能な数字ではあります.

ネットワークはMN-2と同様に100ギガビット・イーサネットを用います.ただ,MN-Coreは独自のインターコネクト(MN-Core DirectConnect)を持っており,これがゾーン中央のノードに接続されます.インターコネクトの仕様は現時点では非公開です.

なお,施設についてはMN-2から引き続き,JAMSTEC横浜研究所 シミュレータ棟に置かせて頂いています.ラック設計については,配線の都合がありわずかに変更した部分もありますが, 基本的にはMN-2の時に設計した内容を継続して利用しています.電源やネットワーク配線敷設, 排熱のことも考え,今回はラック列は2列4ゾーン分を同時に立架し,うち1.5ゾーンのみ計算ノードを 搭載しています.MN-2の隣に構築しており,MN-2とMN-3は複数の100GbEリンクで接続されて,対外線やストレージ,管理ノード等を共有可能です.

MN-Coreへのデータの供給について

MN-Coreは従来のGPUとは全く異なるアーキテクチャなので,ソフトウェアの作り方もあわせて変更する必要があります.詳細はまだ公開できませんが, PFNで現在中心的に利用しているPyTorchの学習コードから僅かな変更で対応できるように準備中です.

事前の検討で,最大効率で計算を行うことができたと仮定すると, 構築段階で入手できたCPU,SSD,NVMe等の組み合わせで,データ供給速度が要求される種類の深層学習ワークロードにおいてデータ供給速度が全く足りないことが推定されました.この対策のため,Intel® Optane™ DC Persistent Memoryを3TB/node搭載しています. 特に画像については,JPEGやPNG等の圧縮されたデータをストレージから読み出すと CPUでの展開処理がボトルネックとなり,展開済データをストレージに保存して 読み出すとストレージデバイスのスループットがボトルネックになる,という状態でした.DRAMに展開済データを全て置ければ問題はないですが,実用的なレベルのDRAMを全ノードに 用意するのは,コストがかかりすぎるという問題もあります.

Optane DC Persistent Memoryは主記憶の拡張としても利用できますが, 今回はapp direct mode(APIを経由して直接データI/Oを行うモード)により, 展開済みイメージデータのcacheとして利用する予定です.画像を対象とした深層学習において,入力となるイメージデータは一般に数十回以上再利用され, 都度random cropやflipなどのデータオーギュメンテーション処理を行うため, 展開後・未処理の状態の画像データをOptane DC Persistent Memoryに保持し, 画像の展開や読み込みの時間を短縮します.なお,Optane DC Persistent Memoryは バイトアドレス可能なことも,この処理の実現に寄与しています.

今後の見込み

MN-3aは,まずは48ノードで稼動させて,その実力を確認するフェーズです.MN-Coreは深層学習を目的として計算機アーキテクチャを検討しましたので, ResNet50等,深層学習の代表的なニューラルネットワークでの動作を確認後, より高度な学習に向けて研究開発を進めていきます.実力が確認でき次第, 需要にあわせて規模の拡張を行っていく予定です.

  • Twitter
  • Facebook