GoogleのTPUグループが発行した最近のレポートでは、TPUv1(2016)から最新の推論ユニットTPUv4i(2020)までの3世代のtensorプロセッシングユニットの開発から得られた10のポイントが挙げられている。著者はまた、これまでの経験が今後のTPUバージョンの開発にどのように影響するかについても説明している。このレポートでは、TPUに関するこれまでの作業だけでなく、ディープラーニング(DL)固有のアーキテクチャ開発の将来についてさらに考察している。
tensorプロセッシングユニットは、ディープニューラルネットワーク推論(TPUv1とTPUv4i)およびトレーニング(TPUv2からv4)用に設計されたGoogleのカスタムメイドのASICである。TPUの設計上の決定と最適化(関連するトレードオフ)は、一般的な(特定の)ディープネットワーク機能とアクティベーションを並列化することを目的としている。したがって、TPUは、ディープネットワークソリューションの開発が比較的安定している実稼働環境の処理に対して費用効果の高い選択肢となる。
ディープネットワークの進化が速くなっていることを考慮すると、TPUの開発にも、過去10年間に数回のイテレーションが必要であった。進捗レポートに記載されている重要な教訓は、次のように要約できる。
- 処理装置を構成するハードウェアコンポーネントは、それぞれ異なる速度で進化する(ロジック、ワイヤー、SRAM、DRAMなど)。
- アーキテクチャの成功と人気は、関連するコンパイラの最適化(TPUの場合はXLA)に大きく依存するが、設計者は、コンパイラがアーキテクチャ自体に従って反復して最適化されることに注意する必要がある。
- ドメイン固有のアーキテクチャを開発する場合は、パフォーマンスを向上させるために総所有コスト(TCO)を最適化することをお勧めする。
- 将来のDLシステムでは、深層学習処理での下位互換性のサポートが重要な要素であり、考慮に入れる必要がある。
- 推論ユニットのデプロイでは、リクエストの待ち時間を短縮するためにグローバルに分散させるため、空気冷却が必要になる場合がある。必要となる液体冷却は、それぞれの場所で用意できない場合がある。
- 一部のアプリケーションでは整数のみ(量子化)の推論が最適でない場合があるため、DLアーキテクチャは浮動小数点演算もサポートすべきである。
- 推論処理はマルチテナントで実行できるべきである。推論では勾配累積(Gradient Accumulation)が必要なく、比較的小さいリソースフットプリントで済むため、共有によってコストと全体的な遅延を削減できる可能性がある。
- 将来のDLアーキテクチャでは、ディープラーニングモデルのサイズを考慮に入れる必要がある(つまり、ディープネットワークはメモリとコンピューティングに対する要件によって年間約1.5倍に成長する)。
- 将来のDLアーキテクチャでは、ディープネットワーク機能とアクティベーションの多様性が増すことを考慮に入れる必要がある(つまり、ディープネットワークアーキテクチャは急速に進化する)。
- サービスレベル目標(SLO)の制限は、推論バッチサイズではなく、API p99の遅延によるべきであるため、将来のアーキテクチャでは、より大きなバッチを利用してアドバンテージを得る必要がある。
TPUv2とTPUv3の開発の詳細は、こちらのレポートで入手できる。昨年の夏、Googleはトレーニング用のv4ポッドを発表した。TPUv4の詳細については、GCPの公式ブログ投稿をご覧ください。TensorFlowとJAXベースのFlaxに加えて、PyTorch APIでは、TPUでモデルを実行するためのXLAコンパイラのサポートも開始した。詳細については、関連ドキュメントを参照してください。このページでは、TPUによってネイティブにサポートされている事前トレーニング済みのディープネットワークをいくつか参照できる。
からの記事と詳細 ( 3世代のtensorプロセッシングユニットから得られた10の教訓 - InfoQ Japan )
https://ift.tt/shPpGqJ
No comments:
Post a Comment