
人工知能や機械学習技術は、インテリジェントなアプリケーションの進化を加速させてきました。ますます複雑化するアプリケーションに対応するため、半導体企業はCPU、GPU、TPUなどのプロセッサやアクセラレータを絶えず開発しています。しかし、ムーアの法則の減速に伴い、CPU単独の性能では、要求の厳しいワークロードを効率的に実行するには不十分です。問題は、企業がAIアプリケーションの過剰な要求をサポートするために、システム全体のパフォーマンスをどのように加速できるかということです。その答えは、ディープラーニングモデルを実行するためにCPUを補完するGPUとTPUの開発にあるかもしれません。そのため、より優れたパフォーマンスと効率のために、絶えず進化する技術についていくために、CPU、GPU、TPUの背後にある技術を理解することが不可欠です。
CPU、GPU、TPUの違いは何ですか?あるいは、それらはコンピュータアーキテクチャでどのように機能するのでしょうか?このブログを読めば、CPU、GPU、TPUに関する疑問のいくつかについて答えが得られるかもしれません。
CPU vs. GPU vs. TPU
根本的に、CPU、GPU、TPUの違いは、CPUが汎用プログラミングに最適なように設計されたコンピュータの頭脳として機能する処理ユニットであるということです。一方、GPUはコンピュータグラフィックスとAIワークロードを強化するパフォーマンスアクセラレータです。TPUは、GoogleがTensorFlow(特定の機械学習フレームワーク)を使用して機械学習ワークロードを加速するためにカスタム開発したプロセッサです。専用のコンピューティングハードウェアに関する以前のブログ投稿で、パフォーマンスアクセラレーションについて詳しく学びましょう。
CPUとは?

中央処理装置(CPU)は、すべてのスマートデバイスに存在するコアプロセッサです。CPUは、いくつかの強力なコアと大容量キャッシュメモリを備えた汎用プロセッサであり、一度にいくつかのソフトウェアスレッドを実行できます。CPUはオーケストラの指揮者のようなもので、メモリからグラフィックカードまで、他のすべてのコンポーネントを制御し、システムのために多くの処理機能を実行します。
CPUには少なくとも1つの処理コアがありますが、時間の経過とともにますます多くのコアを含むように進化してきました。複数のコアを持つことで、CPUはマルチスレッド処理(単一コアで一度に2つの実行ライン(スレッド)を実行できる技術)を実行する能力を備えています。さらに、最新のCPUには現在2~6個のコアがあり、データセンター向けに通常予約されているエンタープライズレベルのCPUでは、8~64個のコアを持つものもあります。
CPUの機能の概要:
- 複数のコアを持つ
- 低レイテンシ
- 直列処理に特化
- 一度に少数の操作を実行可能
- RNN(リカレントニューラルネットワーク)で最高のFLOPS利用率を持つ
- 大容量メモリにより最大のモデルをサポート
- 不規則な計算(例:小さなバッチの非MatMul計算)に対してはるかに柔軟でプログラマブル
GPUとは?

GPU(グラフィック処理ユニット)は、CPUと連携してパフォーマンスアクセラレータとして機能する特殊なプロセッサです。CPUと比較して、GPUは何千ものコアを持ち、複雑な問題を何千、何百万もの個別のタスクに分解し、並列に処理できます。並列コンピューティングは、何千ものGPUコアを利用して、グラフィック処理、ビデオレンダリング、機械学習、さらにはビットコインのような暗号通貨のマイニングなど、さまざまなアプリケーションを最適化します。
過去10年間で、GPUはディープラーニング開発に不可欠なものとなりました。GPUは、大規模な行列演算を高速化し、単一の操作で混合精度行列計算を実行できるため、ディープラーニングを高速に加速できます。この並列コンピューティング技術は、GPUを現代のスーパーコンピューティングの重要な部分とし、世界的なAIブームを巻き起こしました。
GPUの機能の概要:
- 何千ものコアを持つ
- 高スループット
- 並列処理に特化
- 一度に何千もの操作を実行可能
TPUとは?

TPUはTensor Processing Unitsの略で、特定用途向け集積回路(ASIC)です。TPUはGoogleによってゼロから設計されました。Googleは2015年にTPUの使用を開始し、2018年に一般公開しました。TPUはクラウドまたはチップの小型バージョンとして利用できます。クラウドTPUは、高密度のベクトルおよび行列計算を信じられないほど高速に実行し、TensorFlowソフトウェア上のニューラルネットワーク機械学習を加速します。TensorFlowは、Google Brain Teamによって構築されたオープンソースの機械学習プラットフォームであり、開発者、研究者、企業が高レベルのTensorFlow APIで、Cloud TPUハードウェアに支えられたAIモデルを実行および運用するのに役立ちます。TPUは、大規模で複雑なニューラルネットワークモデルのトレーニングにおける時間精度を最小限に抑えます。TPUを使用すると、以前はGPUで数週間かかっていたディープラーニングモデルのトレーニングが、TPUでは数時間で完了します。
TPUの機能の概要:
- 行列処理用の特殊ハードウェア
- 高レイテンシ(CPUと比較して)
- 非常に高いスループット
- 極端な並列処理で計算
- 大規模バッチおよびCNN(畳み込みニューラルネットワーク)向けに高度に最適化
CPU、GPU、TPUの製造元は?

CPU製造元:Intel、AMD、Qualcomm、NVIDIA、IBM、Samsung、Apple、Hewlett-Packard、VIA、Atmelなど
GPU製造元:NVIDIA、AMD、Broadcom Limited、Imagination Technologies (PowerVR)
TPU製造元:Google、Coral (Google傘下)、HAILO
機械学習モデルを実行するためにCPU、GPU、TPUをいつ使用すべきか?
CPUは汎用プロセッサですが、GPUとTPUは機械学習を加速するために最適化されたアクセラレータです。機械学習ワークロードを実行するためにどちらを使用するかは、非常に分かりやすいように思えるかもしれません。しかし、実行している機械学習モデルの種類を詳しく調べて、どのハードウェアがワークロードに最適かを検討することをお勧めします。ここでは、どのプロセッサがアプリケーションに最適かを判断するための簡単なガイドラインをいくつか示します。
CPU:
- 最高の柔軟性を必要とするプロトタイプ
- 長時間を必要としない単純なモデルのトレーニング
- 小さな有効バッチサイズの小さなモデルのトレーニング
- 主にカスタムTensorFlow操作に基づいてC++で記述されている
- I/Oまたはシステムのネットワーク帯域幅が制限されているモデル
GPU:
- 変更が非常に難しいモデル、またはソースが存在しないモデル
- GPUがサポートしなければならない多数のカスタムTensorFlow操作を持つモデル
- Cloud TPUで利用できないモデル
- より大きな有効バッチサイズを持つ中規模または大規模なモデル
TPU:
- 主に行列計算を使用するモデルのトレーニング
- 主要なトレーニングループ内にカスタムTensorFlow操作を持たないモデルのトレーニング
- 完了までに数週間または数か月を要するモデルのトレーニング
- 非常に大きな有効バッチサイズを持つ巨大なモデルのトレーニング
CPU、GPU、TPUはどのようにマザーボードに接続されるのか?
マザーボードは、CPU、メモリ、その他の周辺機器用コネクタなど、さまざまなコンピュータコンポーネントを搭載したプラスチック回路基板(PCB)です。マザーボードは、すべてのCPU、GPU、TPUがシステム内の他の電子コンポーネントと通信するために接続される場所です。
CPUはどのようにマザーボードに接続されるのか?

CPUには、ソケットCPUとSoC(システムオンチップ)統合型CPUの2つの基本的なタイプがあります。ソケットCPUは、マザーボード上のCPUスロットに取り付けられます。CPUソケットは、CPUとマザーボードに接続された他のプロセッサ間で電力とデータを転送するために、何千もの接点または金属ピンで構成されています。ソケットCPUは通常、ピン・グリッド・アレイ(PGA)またはランド・グリッド・アレイ(LGA)CPUスロットを介して接続されます。一方、SoCは、CPUとメモリやグラフィックアクセラレータなどの他の重要な周辺機器を単一のシリコンチップに一体化した独自のチップセットです。SoCは通常、ボール・グリッド・アレイ(BGA)接続でマザーボードに直接はんだ付けされ、IoTおよびモバイルアプリケーション向けに優れた電力消費を提供します。
CPUの消費電力とその冷却ソリューション

CPUの消費電力とは、CPUの動作に必要な電力量のことです。消費電力の値は、適切な冷却ソリューションを選択するための役立つ指標となります。冷却ソリューションを選択する際、メーカーは多くの場合、TDP(熱設計電力)を使用して、ソリューションがCPUをどれだけ効率的に冷却するかを説明します。TDP値は、プロセッサが重いワークロード中にどれくらいの熱を発生させることができるかを決定します。CPUの消費電力とTDPは密接に関連しており、消費電力が高ければTDPも高くなります。CPUが強力であればあるほど、消費電力は増え、重いワークロードを実行するときに発生する熱も増えます。市場にはさまざまなTDP値を持つ幅広いCPUがあります。CPUのTDPは通常、10Wから130Wの熱発生量です。適切な冷却ソリューションを選択するには、冷却ソリューションとCPUが同様のTDPを持っている必要があります。たとえば、TDP 95WのCPUには、TDP 95Wの冷却ソリューションが必要です。産業分野では、ファンレスの頑丈なコンピュータは、CPUを冷却するためにパッシブ冷却ソリューションを利用しています。ファンレスソリューションは、TDPが10Wから65Wのプロセッサを冷却できます。それ以上のものは、通常ファン付きのアクティブ冷却ソリューションが必要になります。
GPUはどのようにマザーボードに接続されるのか?

GPUは、マザーボードへの接続方法が若干異なる追加のアクセラレータです。GPUには、ディスクリートGPUと統合GPUの2つの基本的なタイプがあります。ディスクリートGPUは、中央処理装置とは別の外部グラフィックプロセッサです。GPUには、CPUとは分離された独自の専用メモリがあります。ディスクリートGPUは通常、マザーボードのPCI Express x16スロットに接続されます。対照的に、統合GPUは、SoC集積回路上のCPUに組み込まれています。
GPUの消費電力とその冷却ソリューション
グラフィックカードも消費電力とTDP値をワット(W)で表します。一般的なディスクリートGPUは、TDP定格に基づいて、80Wから250W程度の電力を消費し、100Wから300W程度の熱を発生させます。ディスクリートGPUには、グラフィックカードのTDPにすでに合致した冷却ソリューションが内蔵されているのが一般的です。GPUの消費電力とTDP値を確認することは、どのPSU(電源ユニット)を選択するか、または重いオーバークロックアプリケーションのために追加の冷却ソリューションを設置するかを決定するのに役立ちます。
TPUはどのようにマザーボードに接続されるのか?

2019年初頭、Googleはついに、同社のCoralブランドから購入できるTPUハードウェアをリリースしました。現在購入できるTPUユニットの現在の仕様は、毎秒4兆回の演算(TOPS)を実行でき、1 TOPSあたりわずか0.5ワットの電力で動作します。現在入手可能なTPUハードウェアには、次の3つのタイプがあります。
- USBケーブル接続を介してEdge TPUを搭載するTPU USBアクセラレータ。
- mPCIeまたはM.2(A+EおよびB+Mキー)接続を介して接続するTPU。M.2およびmPCIeコネクタにより、TPUをマザーボードに直接接続できます。
- TPU Dev Boardオプションは、モジュール式AIアプリケーション向けに、取り外し可能なシステムオンモジュール(SoM)を備えたシングルボードコンピュータです。
TPUの消費電力とその冷却ソリューション

Google Edge TPU MLアクセラレータは、合計ピーク性能が8 TOPS(毎秒兆回演算)で、電力消費量は1ワットあたり2 TOPSです。冷却ソリューションとしては、M.2 TPUの個々の熱パッドを介してヒートシンクまたは金属製エンクロージャーを取り付けることで、長期的な安定稼働を確保できます。さらに、Edge TPUは高い接合部温度Tjを持ち、最大接合部温度はTj:115℃です。接合部温度は、シリコンチップの最高動作温度です。Edge TPUの接合部温度は、安全な動作のために温度制限以下に保たなければなりません。各TPUには、内部温度を監視し、動的周波数スケーリング(DFS)のトリップポイントを指定するための温度センサーが含まれています。Edge TPUは、そのコンパクトなフォームファクタ、低消費電力、優れた効率、および耐高温性の特性により、産業用エッジアプリケーション向けの需要が高まっています。
さまざまな処理技術が特定のアプリケーションに応じてさまざまな利点を提供することが示されています。新興技術は急速に進化しており、AIおよび半導体産業が指数関数的に成長し続ける中で、コンピューティング技術の最新の革新に常に注目することが重要です。
