1 ポイント 投稿者 GN⁺ 2024-03-26 | 1件のコメント | WhatsAppで共有
  • Google初のTPU(Tensor Processing Unit)v1は、ディープラーニングを活用した新しいサービスの機会と、必要なハードウェアの規模およびコストを踏まえ、10倍のコスト性能上の優位性を提供するASIC(Application Specific Integrated Circuit)の開発を目標としていた。
  • TPUはテンソル演算を高速化するために設計されており、ここでいうテンソルとは、ベクトル、スカラー、他のテンソル間の多次元配列関係をマッピングする演算を指す。
  • 行列積はニューラルネットワークの中核演算であり、入力ベクトルと重み行列を掛け合わせた後に活性化関数を適用し、隠れ層と出力層を計算するのに用いられる。

Google初のテンソル処理ユニット:起源

  • TPU v1プロジェクトは2013年末に始まり、15か月で開発された。これはニューラルネットワークアクセラレータに関心のある人々にとって興味深い題材である。
  • TPU v1の開発背景と目標は以前の投稿で扱われており、今回の投稿ではTPU v1の構造と性能をより詳しく見ていく。

構造と性能

  • TPU v1の設計は、1978年のH.T. KungとCharles E. Leisersonの論文 "Systolic Arrays (for VLSI)" で提示されたアーキテクチャに基づいている。
  • Systolic arrayはプロセッサネットワークで構成され、周期的にデータを計算しながらシステム内を伝搬させることで、効率的な行列積を実行する。
  • TPU v1のsystolic arrayは256x256の乗算/累算ユニットで構成されており、中間結果をメインメモリに保存したり取り出したりする必要なく、自動的に必要な結果を生成する。

Multiply/Accumulate Units (MACs)

  • TPU v1は8ビット x 8ビット整数乗算を実行し、浮動小数点計算よりも少ないダイ面積で済む量子化を活用している。

命令セット

  • TPU v1は約20個の複雑命令セット(CISC)を使用し、これらの命令はホストコンピュータからPCIeインターフェース経由で送信される。
  • 主な命令には、ホストメモリ読み取り、重み読み取り、行列積/畳み込み、活性化、ホストメモリ書き込みなどが含まれる。

ソフトウェア

  • TPU v1のハードウェアはTensorFlowのようなソフトウェアスタックをサポートし、CPUやGPUで開発されたアプリケーションをTPUへ迅速に移植できるようにしている。

製造とダイ

  • TPU v1はTSMCの28nmプロセスで製造され、ダイ面積はGoogleがデータセンターで使用していたIntel Haswell CPUおよびNvidia K80 GPUチップの半分未満である。

性能

  • TPU v1は推論をより効率的にするために設計されており、Nvidia K80 GPUおよびHaswell CPUと比べて、およそ15倍から30倍高い推論速度とエネルギー効率を提供する。

教訓

  • TPU v1のカスタムアーキテクチャは、現代のCPUやGPUよりもはるかに優れた性能と電力効率を可能にする。
  • TPU v1は推論を高速かつ電力効率よくすることを目的に設計されており、学習向けの設計ではなかった。

GN⁺の意見

  • TPU v1の開発は、Googleが大規模データセンターでの推論処理を最適化するため、特定用途向けハードウェアへ移行する重要な転換点を示している。
  • Systolic arrayアーキテクチャはデータフローを最適化してメモリアクセスを最小化し、それがエネルギー効率と性能向上に貢献している。
  • TPU v1の成功は、その後のさまざまなバージョンのTPU開発へとつながり、AI推論ハードウェアの発展に重要な役割を果たした。
  • TPUと類似した機能を提供する他製品として、NvidiaのTensor Core搭載GPU、IntelのNervana NNP、そしてAmazonのInferentiaがある。
  • TPU技術を導入する際には、既存インフラとの互換性、ソフトウェアスタック、そして特定アプリケーションに対する最適化の度合いを考慮する必要がある。TPUを選択することで得られる利点は、推論処理の高速化とエネルギー効率だが、特定のモデルやデータ型に対する最適化が必要になる場合がある。

1件のコメント

 
GN⁺ 2024-03-26
Hacker Newsの意見
  • GroqのCEO、Jonathon Rossがポッドキャストのインタビューで、GoogleでTPUの原型を作った経緯について語っている。最初は、隣接チームの推論速度の問題を解決するために、自分の20%ルールの時間でFPGAを作った。その後、Jeff Deanが数学的な計算を行い、ASICへ移行することを決めた。現在では、GoogleはTPUチームを独立会社としてスピンオフすべきだという意見もある。TPUはNVidiaに対する唯一の信頼できる競合であり、ソフトウェア支援もNVidiaに次いで2番目に優れている。
  • GoogleがTPUを発明し、Google ResearchがLLMに関する主要な論文を発表したにもかかわらず、NVidiaとAIスタートアップが市場価値の大半を占めている状況への疑問が提起されている。
  • Googleの社員がTPU v5を確認してみるよう勧めている。PyTorch/JAXをサポートしているため、TensorFlowしか使えなかったときよりもはるかに使いやすい。
  • ある記事が、シリコンを通じて抽象的な要素同士がどのようにつながるかをうまく説明している。CISC命令がLLM推論段階にどうマッピングされるのかを見るのは興味深い。
  • Googleは2nm EUV技術へ進出し、さらに2nm以下へ進むべきだという意見。ASMLが提供する電子リソグラフィ技術を確保できれば、非常に強力な結果を得られる可能性がある。Google Xの大胆なプロジェクトになり得るし、TPUが本当に優れているなら、自前のファブと技術を持つビジネスとしても大きな機会になり得る。
  • 現在のTPUの名前がどんな海洋生物なのかという質問。
  • OP(Original Poster)の引用: "TPU v1はおよそ20個の命令しか持たないCISC設計を採用している。" これに対して、CISC/RISCは研究プログラムからマーケティング用語に至るまでさまざまな段階を経て、今では意味のない響きになってしまったという風刺的な意見がある。
  • TPUハードウェアは実際にはベクトル演算と行列演算しか行わないのに、なぜ"テンソル"という用語を使うのか理解できないというコメント。
  • [削除されたコメント]
  • [削除されたコメント]