TPU (G検定)

TPU

1. 定義と概要

TPU(Tensor Processing Unit)とは、Googleが独自開発した特定用途向け集積回路(ASIC)です。機械学習、とくにディープラーニングにおける行列演算(数値を格子状に並べた行列同士の掛け算などの計算)の処理速度を高めることを目的に設計されています。

内部にはMXU(Matrix Multiplier Unit。行列の掛け算を専門に処理する演算回路)と呼ばれる演算回路があり、計算結果をメモリに書き戻さず次の計算へ直接渡していく仕組みであるシストリックアレイという構造を採用しています。この構造により、メモリとのやり取りを抑えた高速・低消費電力な演算が可能になります。2016年5月のGoogle I/Oで発表され、社内では1年以上前から自社のデータセンターですでに稼働していたことも、あわせて公表されています。

従来、Googleは検索や翻訳、画像認識といった自社サービスの機械学習処理を、コンピュータの汎用的な処理装置であるCPUや、GPU(もともと画像処理向けに開発された、多数の単純なコアを持つ汎用的な並列処理装置)で担ってきました。しかし、扱うデータ量とモデルの規模が増大するにつれて、汎用的な半導体チップでは計算量に対する電力効率が追いつかなくなります。

そこでGoogleは、汎用性を犠牲にしてでも行列演算という特定の処理に最適化するドメイン特化型アーキテクチャ(DSA。汎用性を犠牲にして特定分野の処理に最適化するチップ設計の考え方)という発想に基づき、TPUを設計しました。何にでも使える装置を目指すのではなく、用途を絞り込むことで効率を稼ぐという割り切りが出発点にあります。

演算に使う数値の精度をあえて落とす量子化(数値の精度をあえて落として計算量を減らし、高速化・省電力化する手法)と同じ発想の設計です。bfloat16(機械学習向けに設計された、扱う桁数を絞った数値形式)や8ビット整数といった精度を採用し、計算1回あたりの負荷を軽くすることで、高速化と省電力化を両立させています。

2. 試験対策ポイント

まず整理しておきたいのは、TPUがGoogleによる独自開発の特定用途向け集積回路(ASIC)であり、機械学習の行列演算処理に特化して設計されている点です。汎用的な演算装置であるCPUやGPUとは成り立ちそのものが異なり、最初から特定の用途に絞って設計されているところが、両者を分ける最大の特徴です。

演算精度をあえて落とすことで高速化・省電力化を図るという設計方針は、モデルの重みなどの精度を落として計算量を減らす量子化と発想が共通する論点にあたります。

TPUの提供形態は、大きく2つに分かれます。データセンターでの大規模な学習・推論(学習済みモデルを使って答えを出す処理)に向けたものと、エッジ機器に向けたものです。

提供形態 主な用途 特徴
Cloud TPU(TPUをクラウド経由で借りて利用できるGoogleのサービス) データセンターでの大規模な学習・推論 クラウド経由で必要な期間だけ利用できる
Edge TPU(エッジ機器向けに設計された小型・低消費電力版のTPU) エッジ機器での推論 2018年発表、Coralブランドで提供

同じTPUでも、規模の大きい計算を任せる側と、現場の機器に載せる側で設計が分かれている形です。

CPU・GPU・TPUといった計算資源の進化は、ビッグデータ、深層学習アルゴリズムと並んで、現在まで続く第3次AIブーム(2000年代以降現在まで続くAI技術発展の波)を支えてきた背景要因のひとつです。TPUは、NPU(AI処理に特化した半導体チップ全般を指す総称的な語)や、FPGA(製造後にも回路構成を書き換えられる半導体チップ)といった専用ハードウェアの系譜のなかに位置づけられるキーワードです。

3. 関連概念との比較・相違点

GPUとの最大の違いは、汎用性と特化度の軸にあります。GPUはもともと画像処理向けに開発された汎用的な並列処理装置で、科学技術計算や機械学習など幅広い並列計算に応用できる汎用性の高さが特徴です(GPU内部の詳しい仕組みは姉妹記事『GPU』に譲ります)。

一方でTPUは、機械学習の行列演算という特定の処理のために最初から設計された専用のASICであり、その分野に絞ればGPUより高速・省電力になりやすい一方、用途の広がりでは及びません。専用設計に絞るか汎用性を残すかという設計思想の違いが、両者の分かれ目です。

NPUやFPGAとの違いも、AI処理向け専用ハードウェアという括りのなかで整理しておきたい点です。関係する4つの位置づけを並べると、TPUがどのあたりに立つ存在なのかが見えてきます。

種類 位置づけ
TPU Googleが機械学習の行列演算に特化して自社開発した専用ASICの一種
GPU もともと画像処理向けに開発された汎用的な並列処理装置
NPU AI処理に特化した半導体チップ全般を指す総称的な語
FPGA 製造後にも回路構成を書き換えられる半導体チップ

NPUは総称であって、個別の製品を指す名称ではない点に注意が必要です。FPGAは製造後にも回路構成を書き換えられる点で、あらかじめ用途を固定して作られるASICとは対照的な位置づけにあります。

4. ビジネス・実務での活用シナリオ

検索や翻訳といったGoogle自社サービスの現場では、検索のランキング処理や音声認識、画像認識モデルの推論にTPUが活用されています。大量のユーザーリクエストを低遅延かつ低コストで処理できる点は、大規模サービスを支える実務上の意義です。

クラウドAI開発の分野では、Cloud TPUとしてGoogle Cloud上で外部の企業や研究者にも提供されており、大規模なAIモデルの学習・推論を行う計算基盤として利用されています。自前で大規模な計算資源を持たない企業でも、高性能な計算環境を必要な期間だけ利用できる点は、導入のしやすさにつながる利点です。

IoTや防犯カメラなどのエッジ機器の分野では、Edge TPUを使い、映像から人や物体をリアルタイムに検知する用途で活用されています。消費電力を抑えながら現場側で推論を完結できる点は、通信環境に左右されない安定した運用を支える要素です。

5. 要点まとめ

  • TPUはGoogleが機械学習の行列演算処理に特化して開発した特定用途向け集積回路(ASIC)で、シストリックアレイという構造でメモリとのやり取りを減らし高速・低電力な計算を実現します。
  • 演算精度をあえて落とす設計は量子化と発想が共通し、画像処理向けの汎用的な並列処理装置であるGPUとの違いとしても整理できます。
  • データセンター向けの大規模なCloud TPUと、エッジ機器向けに小型・低消費電力に設計されたEdge TPUという2つの提供形態があります。

6. 確認問題

問1TPUは、Googleが機械学習の行列演算処理に特化して開発した特定用途向け集積回路(ASIC)である。

解答・解説をみる

○ 正しい

TPUの定義そのものです。シストリックアレイという構造で計算結果をメモリに書き戻さず次の計算に直接渡すことで、高速かつ低電力な演算を実現しています。

問2TPUはGPUと同様にもともと画像処理を主目的として開発された汎用的な並列処理装置であり、機械学習以外の幅広い用途にも使われることを前提に設計されている。

解答・解説をみる

× 誤り

正しくはTPUは機械学習の行列演算処理に特化して設計された専用のASICであり、画像処理全般を主目的として開発された汎用的な装置ではありません。GPUの特徴と入れ替えた記述は、取り違えやすい点です。

問3TPUには、データセンターでの大規模な学習・推論向けに提供されるCloud TPUと、エッジ機器向けに小型・低消費電力に設計されたEdge TPUという2つの提供形態がある。

解答・解説をみる

○ 正しい

Cloud TPUはクラウド経由で外部企業も利用できるサービスとして、Edge TPUは2018年に発表されCoralブランドでエッジ機器向けに提供されています。