TPUと整数演算

だいぶ前にGoogleがTensorFlow用に作ったAIプロセッサTPUが話題になりました。

TPUは大並列の整数演算プロセッサで、CNNを高速処理するために設計されています。ぱっと見、明らかに認識エンジン側によった設計だと思ったのですが、世間的には多少の驚きがあったようです。

DSPを長く売っていると繰り返し出てくる性能指標が、

演算速度/(コスト×体積×消費電力)

です。組み込みの印象の強いDSPですが、歴史的にはRASモデムや医療装置の計算装置など、多重度の高い機械やFPGA普及以前の並列演算機などによく使われていました(今でも表に出ないだけでそういう用途はある)。キーはなんと言っても消費電力です。X86は常に高い計算能力をたたき出しますが、何しろ発熱が酷いために、施設や装置の熱的上限にぶつかって単位体積あたりの演算能力を上げられません。ブレードサーバーなどの分野に能力より低発熱を謳ったプロセッサが開発されるようになったことはよく知られています。

翻ってTPUを見てみれば、浮動小数点ではなく整数演算を選んだことから組み込みやサーバー用途を狙っていることは明々白々です。外販を考えていないとのことですので、結局はサーバーとしての演算密度を考えてのことなのでしょう。

浮動小数点による認識から結果がずれることになりますが、天下のGoogleが資金を投じているので、整数演算による認識は今後1,2年で研究が活発に行われると思われます。

TPUは整数化に加えて語長の短縮も行われているわけですが、CNNではノイマン型よりもさらにメモリのボトルネックが深刻になります。そのため、語長短縮は速度的にも非常に効果があります。

ネットワークのバイナリ変換といった研究もあり、1,2年の間に単位電力あたりの認識が飛躍的に高まることになるのでしょう。

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください