Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

In datacenter performance analysis of a tensor processing unit

131 views

Published on

In datacenter performance analysis of a tensor processing unitについてまとめ

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

In datacenter performance analysis of a tensor processing unit

  1. 1. In-Datacenter Performance Analysis of a Tensor Processing Unit 計算機システム研究室B4 中岡典弘
  2. 2. Contents 1. ABSTRACT 2. BACKGROUND 3. METHODS 4. EXPERIMENTAL RESULTS 5. DISUCUSSION 6. RELATED WORK 7. CONCLUSIONS 8. FUTURE WORK 1
  3. 3. ABSTRACT • データセンターに配備され,ニューラルネットワークの 推論フェーズを加速させるTPUと呼ばれるカスタムASICを評価 • TPUの本質は65,536個の8bitMAC行列乗算ユニット (ピークスループット92TOPS)と ソフトウェアで管理される大きなチップ(28MiB)上のメモリ • TPUはCPU,GPUの持つ最適化機能を持っていない ⇒無数のMACと大メモリの割に小さく,低電力 • TPUはCPU,GPUと比べて平均15~30倍高速 TOPS/Wは約30~80倍高い TPUでGDDR5メモリを使用すると更に性能向上 2
  4. 4. BACKGROUND • 2006年にはデータセンターにGPU,FPGA, カスタムASICの導入の議論 • 2013年にはDNNの普及予想によりデータセンターへの 計算要求の倍増 ⇒CPUでは非常に高価になる予想 ∴推論用カスタムASIC(学習用はGPU) • 目標はコストパフォーマンスをGPUの10倍 3
  5. 5. Neural Network • 推論における計算処理 • 入力データxと重みwの乗算 (multiply) • 乗算結果を加算(add) • 活性化関数(activation function)を適用 • 乗算と加算は行列積として表せる • 行列積が計算処理で最も負荷が高い 4
  6. 6. METHODS 5
  7. 7. QUANTIZATION • 16bit or 32bit float ⇒ 8bit int • NNの推論に必要な計算コストを大幅に削減 6https://cloudplatform-jp.googleblog.com/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu.html
  8. 8. TPU ARCHITECTURE • Matrix Multiply Unit(MXU) 行列乗算ユニットはTPUの中心 256x256 MACを内蔵(8bit) • Weight FIFO (4x64KiB tiles deep) MXUへ8GiB DRAMから重みを 読み出す(推論時は読取専用, 8GiBは多くのモデルをサポート) • Unified Buffer(24 MiB) MXU,Hostのinput/outputの活性化 (中間結果)を保持 • Accumulators:4MiB(4096x 256x 32bit) MXUでの演算結果(16bit)を格納 4096:1350ops/byteのピーク性能を 達成のため パフォーマンス = 2048 x2 (for double buffering) 7
  9. 9. Floor Plan of TPU die 8 • Only Control 2% • 99th% Response achieve 7ms ⇒Minimalism • TPU chip size ≈ CPU,GPU chip size / 2
  10. 10. Instruction Set • CISCの伝統に従う • Read_Host_Memory CPUホストメモリからUBにデータを読み込む • Read_Weights WeightMemoryからWeightFIFOへMXUへの入力として読み込む • MatrixMultiply/Convolve MXUはUBからAccumulatorsへの行列乗算または畳み込みを実行, 及び結果の加算 • Activate ReLU,Sigmoidなどを使用し,人工ニューロンの非線形関数を実行 • Write_Host_Memory UBからCPUホストメモリにデータを書き込む • 4ステージパイプライン 9
  11. 11. Matrix Multiply Unit 10 • MXUはシストリック実行を使用 ⇒UBの読み書きを削減し, エネルギーを節約 • シストリックアレイ 単純な演算を行う多数のPEを 規則正しく配置したもの • 符号付き/なし8bit整数の乗算と加算を 実行できる256x256 MAC • MXUは64KiBの重みのタイルとダブル バッファリングのための 1つのタイルを保持 • クロックサイクルごとに256個の値を 読み書きし,行列の乗算または畳み込み のいずれかを実行できる
  12. 12. Systoric Array 11 • 下側の6つの丸が積和演算ユニットであり,重み𝑤𝑖𝑗で初期化 (Weight Stationary) • ステージングされた入力データ𝑥𝑖が,アレイ上部から転送されている • シストリックアレイは入力データを下側に転送し,積と和を右側に転送 • シストリックアレイの入力データはメモリからのみ読み込まれ, 出力データは1度だけメモリに書き込まれる https://cloudplatform-jp.googleblog.com/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu.html
  13. 13. Systoric Array 12 • シストリックアレイの入力データはメモリからのみ読み込まれ, 出力データは1度だけメモリに書き込まれる https://cloudplatform-jp.googleblog.com/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu.html
  14. 14. Matrix Multiply Unit 13 • MXUのシストリックアレイは 256x256=65,536個のALU • 8bit整数による乗算と加算を クロックの1サイクルごとに 65,536回分一度に実行できる • TPUは700MHzクロックで動作 ⇒700 MHz x 65,356 = 46 x 1012回の 乗算と加算を1秒間に実行
  15. 15. EXPERIMENTAL RESULTS 14
  16. 16. EVALUATION • Haswell CPU: 18-cores (no turbo, 2.3GHz with AVX) • K80 GPU: ブーストモードは無効 ∵有効だとK80カード数を減らす必要がある 15
  17. 17. TPU Roofline (per die) 16 • MLP,LSTMはメモリ帯域幅に制限 • CNNは演算限界で制限 • CNN0は86.1TOPSで動作 CNN1は14.1TOPSで動作 • この差を考える
  18. 18. TPU benchmark 17 • CNN1が演算性能を引き出せない原因を考える • 行列操作をしたサイクルは半分以下(Row1) • 有用な重みは約半分(Row2) • 重みをロードするサイクルに35%も(Row4,5)
  19. 19. CPU & GPU Roofline (per die) 18 • CPU,GPUでルーフより値が低い ⇒処理のレイテンシが長く, レスポンスが遅い • 推論はエンドユーザ向けのサービス の一部 • レスポンスの増加が 顧客のサービス利用を妨害 • 推論はスループットより レイテンシを優先
  20. 20. Minimalism is a virtue of domain-specific processors • MLP0実行時の許容可能な最長レイテンシを7ms • Batch sizeとレスポンスによる推論性能の関係を示す • レスポンスが制限される(=小さいバッチサイズ)とき, CPU,GPUはそれぞれのIPSの最大性能の半分以下しか得られない • 応答時間の基準はGoogleによるもの 19
  21. 21. Each Roofline (per die) 20 • 星はTPU 三角はK80 丸はHaswellを示す
  22. 22. K80 GPU die and TPU die performance relative to CPU for the NN workload • NNワークロードのCPUに対するK80 GPUダイと TPUダイのパフォーマンスの幾何平均と加重平均を示す • Ratio 2つのアクセラレータとCPUのホストサーバオーバーヘッドを含む, ダイの相対的な推論性能 • GM 6つのNNアプリケーションの相対的性能の幾何平均 K80 = Haswell x1.1 TPU = Haswell x14.5 GPU x13.2 • WM 6つのNNアプリケーションの相対的性能の加重平均 K80 = Haswell x1.9 TPU = Haswell x29.2 GPU x15.3 21
  23. 23. Energy Proportionality 22
  24. 24. Evaluation of Alternative TPU Design 23 • メモリ帯域幅 x4 ⇒MLP,LSTM x3 Avg x3 • クロック x4 ⇒CNN x2 Avg x1 • メモリ帯域幅が大きく影響 • クロックレートはほぼ関係なし • MXUが拡大すると性能低下
  25. 25. Cost Performance Results 24
  26. 26. DISUCUSSION • NN推論アプリケーションはレスポンスと同じくらいスループットを重視 ピーク性能とレスポンスの要求に対して,レスポンスを優先 TPUはレスポンスを優先しても,CPU,GPUより高いピークスループット • K80 GPUアーキテクチャはNNの推論によくマッチしている スループット指向のアーキテクチャであることを考えると, 厳しいレイテンシの制限を満たすのは難しい • システム設計者が重要なNNタスクを無視 NNハードウェアアクセラレータが取り上げられるようになったが ほとんどCNN向けであった.実際にCNNはGoogleデータセンターの NNワークロードの約5%にすぎない.MLPやLSTMのアクセラレータも 行うべき 25
  27. 27. DISUCUSSION • NNハードウェアのパフォーマンスをIPSで計測するのは不正確 アプリケーションの典型的な推論の複雑さ(e.g.NN層の数,サイズ,タイプ) を反映していない.新ベンチマークスイートとしてFathomは有望 • K80 GPUのBoostモードによる性能上昇 TCOに及ぼす悪影響以外にPerfomance/Wattが1.1倍になるだけで 大きくコストパフォーマンスを上昇させるものではない. • CPU,GPUの新しいバージョンはTPUに匹敵 開発していた2015年段階では利用できなかったので,最新のプラット フォームではない.しかしTPUのメモリにGDDR5メモリを使用するだけ でTPUのパフォーマンスを3倍にできる 26
  28. 28. DISUCUSSION • パフォーマンスカウンタはNNハードウェアの補足として追加 NNアクセラレータの存在理由はパフォーマンスである 何が起きているかを理解するにはパフォーマンスカウンタが足りていない • TPUのパフォーマンス向上にはハードウェアのアップグレードしかない TPUハードウェアとNNの構造を一致するように努力すれば改善の可能性 ハードウェアだけでなく,ソフトウェアのアップデートも必要 27
  29. 29. RELATED WORK • サーベイによるとカスタムNN ASICは少なくとも25年前より TPUと先行研究との差 • Diannaoはシストリックではない • TPUは確率的丸めをサポートしていない (cf. Deep Learning with Limited Numerical Precision) • ASICは入力,出力バッファと計算エンジン間の クロスバーの配線コストが重要 (cf. Optimizing FPGA-based accelerator design for deep convolutional neural networks) • TPUのUBは通常の動作中にDRAMのspillingや reloadingが発生しないサイズ 28
  30. 30. CONCLUSIONS • 大型の行列乗算ユニット • 実質的なソフトウェア制御のオンチップメモリ • ホストCPUへの依存を減らす,全推論を実行する能力 • シングルスレッドの決定論的実行モデル • 十分な柔軟性 • 大規模なデータパスとメモリにもかかわらず, 小型で低消費電力のダイを可能にした汎用機能の省略 • 量子化されたアプリケーションによる8bit整数の使用 • アプリケーションはTensorFlowで書かれているため, 高性能で簡単に移植できる 29
  31. 31. FUTURE WORK • 今回は推論のみであったが,将来的には学習も行う • 第2世代では学習も可能になった 浮動小数点演算が可能 個々のTPUは45TFLOPS(180TFLOPS/4chips=1board) 11.5PFLOPS/256chips(=64board)を達成 • 第3世代では100PFLOPS/1unit(=256chips?)を達成 冷却方式は液体冷却 30

×