Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

SambaNova Systems の講演ビデオとスライド

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

このブログでも、昨年の11月と今年の3月に取り上げた、SambaNova Systems がINTERNATIONAL WORKSHOP ON MACHINE LEARNING HARDWARE (IWMLH), CO-LOCATED WITH ISC2020にて講演したビデオとSlideが公開されています。

今回の発表で SambaNova Systems のチップおよび商品がちょこっとわかりました。

Software 2.0 については、NIPS 2018の講演資料に説明があります。

今回の資料では、Software 2.0のことはサクッと書いていますが、NIPS 2018の講演資料にはかなり詳しく載っています。

8頁のNext gen Software 2.0 systems need spport for

  • Hierarchical parallel pattern Data flow
  • Terabyte sized models
  • Sparsity
  • Flexible mapping
  • Data processing


とあって、NIPS 2018の資料では、Next-Gen ML Accelerators : Native Support for

  • Hierachiccal patalle pattern dataflow
  • Dynamic precision
  • Sparsity
  • Data Processing

とあるので、多少は変わってきているんですね。Dynamic precision はBfloat16とかでているのでこれでいいのでもう当たり前と見ると、

  • Terabyte sized models
  • Flexible mapping

の2つが追加されたんですね。特に、Terabyte sized models は 19頁のグラフを見ると2019年後半から急激に要求が上がってきた感じですね。

 

チップ

  • チップ名:SN10 RDU
  • TSMC 7nm
  • 40B transistors
  • 50 km of wire
  • 100s of TFLOPs
  • 100s MB on chip
  • Direct interfaces to TBs off chip  (TBってなんだ。。。)

商品

  • DataScale SN10-8 ( Single 8-socket DataScale system)
  • DataScale SN10-8R Full Rack (4 x 8-socket DataScale systems)
  • (SN10-8Rは、SN10-8を4セット、Rackに収めたものっぽい)

写真を見ると、5台のブレードサーバーで1セットになっていて、中途半端だなと思っていましたが、8 - socket Data Sccale ということなので、1台には2個のRDUが入っていて、4台で8 RDU 、残りの1台はホストとになり、ホストから4台にPCIe で接続。8個のRDUは何らかのチップ間で接続。。。NVIDIAのDGXのように4Uではなく、1Uに入れちゃっている。これって、Graphcoreの1UベースのRackScalue IPU-Podと同じですよね。

そうなると、1台の中に、RDUx2だけじゃなくて、Arm系のSoCも載っているのかしら。。。Chipのところに、「Direct interfaces to TBs off chip」とあり、TBが何の略かが気になる。。。ビデオを再度見たら、言ってました。。。TeraBytes Memory と。ということはチップにはTeraByte Memory用インターフェースが載っていて、各1UサーバーにはTeraByteメモリが載っているんだ。。。これで2個のRDUで1Uサーバーが必要なのが分かったーーーー。Xeon だと、12枚のDDR4が接続できるので、64GBx12枚で768GB。2チップで、1536GB、そう、TeraByte Memory になる。DDR4が8枚で、2xRDUで1TBか。。DDR4コントローラ1個に対して、2Slotサポートできそうなので、8枚だとDDR4 x4 コントローラで512GBか。

 

ソフトウエア

  • PYTORCH
  • TensorFlow
  • SQL (VIdeoでは、SQLでしたが、Slideでは User's Graph になっています)

なんで、SQLなのか、始めは分からなかったのですが、自分の過去のブログを読み返してみてわかりました。NIPS 2018の資料では、Spark SQLとあるですよね。

GV(アルファベットの投資会社)がSambaNova Systemsに投資しています。株主の課題を解決できると嬉しいので、GoogleのCloud Dataflow SQLにも対応できればと。この Cloud Dataflow SQL って、vCPU (Compute Engine) で動いているようなので、GPUやTPUじゃ実行できない。なので、RDUで実行できればいいんじゃないと。。。

 

後半に出てきますが、このシステムは、

Enabling New Capabilities 

ということで、

  • Trillion parameter NLP models
  • High Resolution Deep Learning (50k x 50k)
  • Recommendation models with huge 100GB embedding tables

ということです。

つまり、バカでっかいデータおよびモデルに対応するということ。。。

スライドの20頁目に、NVIDIAのDGX-2 x64台で動かしたモデルでも、 1台のDataScale System(8 RDUの方)で賄えると。

 

それから、Training と Inference の環境を同じにできると。

現在のMLでは、Training は GPU で、Inference は CPU が多い。なので、TrainingのGPUからInferenceのCPUに持っていくときに互換性が無いことがある。。。

何故、InferenceでCPUを使うのかというと、Batch Size = 1 では、GPUよりCPUの方が速いため(GPUの場合は、Batch Size を1でもある程度大きくても同じ。何故なら、ある程度のBatch Size で処理しているため)

SambaNova SystemsのRDUなら、TrainingもInferenceもRDUでできるだけでなく、Inference時のデータを使ってインクリメンタルなTrainingやReal-TIme Trainingができちゃうということ。そのTrainingによってModelの最適化もできちゃうと。

(本当にそんな簡単にできちゃうのかは、わかりませんが)

RDUは、Batch Size = 1 で、CPU・GPUより2倍以上速いし、スループットGPUの16倍になるんだと。

これ、Graphcore が言っているのと同じね。。。

 

結構分かってきて、何となく、嬉しいですよ。*1

 

過去ブログ

vengineer.hatenablog.com

vengineer.hatenablog.com

vengineer.hatenablog.com

 

 

*1: