日曜日にDevFest Kyotoに参加してTPUの情報を集めてきました。
https://gdgkyoto.connpass.com/event/99527/
Twitterでは見たことがあるこの図を生で見れたのが良かったです。
TPUで使用されているbfloatフォーマットについて。
よく見ると、指数部を増やして、仮数部を減らしています。推論で使うことを考えると、適切な正規化を行うことでデータの範囲をある程度制御でき、むしろ指数部が要らない気がします。となると学習時の勾配をハンドルするために、指数部を増やしていると思います。学習に関しては、最初はbflot16で進めて、learning rateを下げるタイミングでfp32に切り替えたりしたら、速度と精度のバランス取れそうです。妄想が膨らみますね。
消費電力について
TPU v3の消費電力はシークレットという事ですが、水冷が必要になっている時点でお察し案件だと思います。TPU v2について上から見た写真しかなく、横から見た写真が公開されていないのは、放熱器の大きさからだいたいの消費電力がばれるからだと思います。
僕の勝手な予想だと両方とも100Wくらいあるのではと思います。
発表資料
マーチンのTPU発表資料はこちらです。
https://docs.google.com/presentation/d/1iodAZkOX0YMnUwohgQqNsbEkhR0zAnO-jncK9SkJ69o/edit