季刊超々ハイエンドサーバーの世界 2020年春号

1-3月が冬、4-6月は春だ

HDDの大容量化進む

WDが20TB HDDを出荷

WDがSMR方式で20TBのHDD、およびCMR方式で18TBのHDDをサンプル出荷

https://pc.watch.impress.co.jp/docs/news/1226336.html

昭和電工が熱アシスト記録メディアの開発に成功

https://www.sdk.co.jp/news/2020/37881.html

昭和電工が熱アシスト記録に対応したHDDプラッタを開発。熱アシスト記録既存のHDDより強力な磁性体を素材として使用することができ、記録密度は4倍以上、70~80TBのHDDが製造できる見通しだという。

SAS HDDが最大Read290MB/sへ

東芝ALシリーズHDD一部のモデルがカタログスペックで290MB/sに到達

https://toshiba.semicon-storage.com/jp/storage/product/data-center-enterprise/enterprise-performance/articles/al14sxbxxex.html

なおSATAでは先述のUltrastarの270MB/s前後が最速とみられる。

AMD CPUの動向

Ryzen threadripper 3990X発売

Zen2世代最強のCPUとなる64コア/128スレッドのRyzen Threadripper 3990Xが発売された。サーバー向けEpycにはすでに64コア/128スレッドモデルは存在するが、Epycはサーバー用にクロックを抑え気味なのでこちらがより高性能である。

今年中にZen3のEpycが登場する?

https://northwood.blog.fc2.com/blog-entry-10173.html

AMDの発表によると、Zen3アーキテクチャのEpycが今年末に登場するとのこと。

Google TPUのコア数と構造

Google TPUに関してサイトごとに異なる情報が書かれていたりするので、本誌なりに情報をまとめる。

結論としては

  • TPU Pod v2=512 v2コア=64TPU v2
  • TPU v2=2 コア×4チップ構成のボード
  • TPU Pod v3=2048 v3コア=256 TPU v3
  • TPU v3=2 コア×4チップ構成のボード

と考えられる。

TPU v2

やや複雑ではあるが、v2 TPUは2コアチップが4つ乗ったボードで、これを最低単位としている。

根拠としては以下の通り。

1ポッド=64 TPU v2

また以下のページでは、TPU v2単体が180TFlops、ポッド全体で11.5PFlopsとしている。

https://cloud.google.com/tpu?hl=ja

11500TFlops / 180TFlops = 63.8888・・・≒64

であり、1ポッドがTPU v2×64でできていることが分かる。

1ポッド=512 v2コア

料金表v2-512のメモリ容量とhttps://cloud.google.com/tpu?hl=jaで書かれたTPU Podのメモリ容量は一致しているので、1ポッドがv2 512コアである。

1 TPU v2=2コア×4チップ

GoogleのページでもTPU v2は4つのチップが乗ったボードの写真が掲載されており、1TPU v2=8コア=4チップと考えられる。またこの考えはHot Chipで発表された資料と思われるものと一致している。

https://www.servethehome.com/case-study-google-tpu-gddr5-hot-chips-29/

まとめ

これらより、

TPUポッドv2=512コア=64 TPU v2=512 v2コア=64×(2コア×4チップ)

として辻褄が合う。

TPU v3

TPU v3でも上記同様にメモリ容量を頼りに考えると、1ポッド=2048 v3コアであることが間違いない。

またTPUv3 1つが420TFlops、TPU Pod v3が最大100PFlops以上とされている。こちらも料金表では最低単位が8コアとなっており、TPU v3が8コアでできているとすれば

  • 1ポッド=2048コア=256 TPU v3
  • 420TFlops×256 TPU v3=107PFlops

となり100PFlops以上という計算にちょうど合う

よって

TPUポッドv3=2048コア=256ユニット=256 TPU v3=256×(2コア×4チップ)

と考えて辻褄が合う。

Tesla A100登場

Nvidiaが前世代Tesla V100の20倍というTesla A100を発表した。

どこが性能20倍になったのか

こういった性能x倍という表現は最大限良い条件での性能比率である。いったい何が20倍なのであろうか。

その前に、近年出てきた新しい浮動小数点型について紹介したい

特徴主導企業
float1610年以上前から存在し、元はグラフィック用に作られたデータ型。NVIDIA, Microsoft
tf32主にTensorflowで使用されているデータ型。名前から32bitのように見えるが実際には19bitデータであり、float32の指数部とfloat16の仮数部を組み合わせた形になっている。このため、float16より表現できる数値の範囲が広く、float32と互換性がある(仮数部を丸めるだけで変換可能)。Google?
bfloat16主にIntelのCPUやFPGAで採用されているデータ型。float16より指数部を増やし仮数部を減らしているので、表現できる範囲はfloat16より広く精度は低い。ニューラルネットワークで使用するにあたって精度は低くてもさほど問題ないためこのような実装になったと考えられる。Intel

参考:https://medium.com/@moocaholic/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407

では、Tesla A100の性能を見てみる。

単位:TFlopsTesla A100Tesla V100
float649.77.8
float64(Tensor core)19.5
float3219.515.7
tf32(Tensor core)156※
bfloat16(Tensor core)312※
float16(Tensor core)312※125
INT8(Tensor core)624※
INT4(Tensor core)1,248※

※スパース行列(疎な行列)の場合さらに2倍

表の水色部分はTensor coreの性能を表記している部分である。Volta世代のTesla V100がTensor coreで処理できるのは半精度少数のみであったが、Ampare世代ではこれに加えてfloat64, tf32, bfloat16, INT8, INT4(INT8, INT4はTuring世代でも対応している)が処理できるようになった。

そして、従来のV100のfloat32性能とA100のTensor core使用時でスパース行列の処理時のtf32性能を比較して20倍としていることが分かる。

float32での性能と、精度が落ちるtf32での性能を比べて20倍になったというのはやや乱暴なように思われるが、ニューラルネットワークで使用する限りはどちらを使用しても大差がなく、一応の説得力はある。

一方、Tensor coreを使用しないCUDAコアの性能比較ではおよそ3割増し程度である。