Pixel Visual Core

ウィキペディアから無料の百科事典

Pixel Visual CorePVC)は、Googleが設計したARMベースの一連のsystem in a package(SiP)画像プロセッサである[1]。PVCは、モバイル デバイスおよび将来のIoT向けの、完全にプログラム可能な画像ビジョン英語版AIのマルチコアのドメイン固有アーキテクチャ(DSA)である[2]。2017年10月19日に発売されたGoogle Pixel 2と2 XLで初めて導入された。Google Pixel 3と3 XLでも導入されている。Pixel 4以降、このチップはPixel Neural Coreに置き換えられた。

歴史[編集]

Googleは以前、Qualcomm SnapdragonCPUGPUIPU、およびDSPを使用して、Google NexusおよびGoogle Pixelデバイスの画像処理を処理していた。コンピュテーショナルフォトグラフィーの技術の重要性が増してきたことで、GoogleはPixel Visual Core(PVC)を開発した。Googleは、PVCはCPUGPUを使用するよりも消費電力が少なく、テンソル・プロセッシング・ユニット(TPU)のようなASICとは異なり、完全にプログラム可能であると主張している。実際、従来のモバイルデバイスには、固定機能の画像処理パイプラインである画像信号プロセッサ(ISP)が装備されてきた。これとは対照的に、PVCは画像処理だけに限定されない柔軟なプログラマブルな機能を備えている。

Google Pixel 2と2 XLのPVCには、SR3HX X726C502というラベルが付いている[3]

Google Pixel 3と3 XLのPVCには、SR3HX X739F030というラベルが付いている[4]

PVCのおかげで、Pixel 2とPixel 3は98[5]と101[6]のモバイルDxOMark英語版を取得した。後者は、iPhone XRと並んで、一眼レフのモバイルDxOMarkスコアの上位であった[7]

Pixel Visual Coreソフトウェア[編集]

PVCプログラマー向けのカーネルの有向非循環グラフのビュー

PVCの典型的な画像処理プログラムは、Halide英語版で記述されている。現在、浮動小数点演算は行わず、メモリアクセスパターンが制限されているHalideプログラミング言語のサブセットのみをサポートしている[8]。Halideは、ユーザーがアルゴリズムとその実行のスケジューリングを分離できるドメイン固有言語である。これにより、開発者はターゲット ハードウェア アーキテクチャに最適化されたプログラムを作成できる[2]

Pixel Visual Core ISA[編集]

PVCには、仮想と物理の2種類の命令セットアーキテクチャ(ISA)がある。まず、高水準言語プログラムが、RISC-V ISA[2]に触発された仮想 ISA(vISA)にコンパイルされ、ターゲット ハードウェア世代から完全に抽象化される。次に、vISAプログラムは、いわゆる物理 ISA(pISA)、つまりVLIW ISAにコンパイルされる。このコンパイル手順では、ターゲット ハードウェア パラメーター(PEサイズの配列、STPサイズなど)を考慮し、メモリ移動を明示的に指定するようになっている。vISApISAの分離により、最初のものはクロスアーキテクチャで世代に依存せず、pISAはオフラインまたはJITコンパイルを通じてコンパイルできる[8]

Pixel Visual Coreアーキテクチャ[編集]

4コアのPVCの例

Pixel Visual Core は、2~16コア設計の偶数の範囲で、スケーラブルなマルチコアのエネルギー効率の高いアーキテクチャとして設計されている[2]。PVCのコアは、画像処理用に調整されたプログラム可能なユニットである画像処理ユニット(IPU)である。Pixel Visual Coreアーキテクチャも、SR3HXのような独自のチップとして、またはシステム オン チップ(SOC)IPブロックとして設計されている。

画像処理ユニット(IPU)[編集]

IPU コアには、ステンシル プロセッサ(STP)、ライン バッファー プール(LBP)、NoC英語版がある。STPは主に、ステンシル計算英語版を実行できる処理要素(PE)の2次元SIMDアレイ、つまりピクセルの小さな近傍を提供する。シストリック アレイ英語版と波面計算に似ているように見えるが、STPには明示的なソフトウェア制御によるデータ移動がある。各PEは、2x 16ビット算術論理演算ユニット(ALU)、1x 16ビット積和演算ユニット(MAC)、10x 16ビットレジスタ、および10x 1ビット述語レジスタを備えている[2]

ラインバッファプール(LBP)[編集]

最もエネルギーコストのかかる操作の1つがDRAM アクセスであることを考慮すると、各STPにはデータの局所性を高めるための一時バッファー、つまりLBPがある。使用されるLBPは、さまざまなサイズの読み取りと書き込みに対応する2次元FIFOになっている。LBPは、シングル プロデューサー、マルチコンシューマーの行動モデルを使用する。各LBPは、8つの論理LBメモリとDMA入出力操作用に1つを持つことができる[8]。メモリシステムは非常に複雑であるため、PVC設計者はLBPコントローラを最も困難なコンポーネントの1つとして挙げている[2]。使用されるNoCは、エネルギーの節約とパイプライン化された計算パターンの保存のために、隣接するコアのみと通信するために使用されるリングネットワークオンチップである。

ステンシル プロセッサ(STP)[編集]

PEの2次元配列の表現。白は完全なPE(16x16)で、灰色は「halo」(144)の一部である。明示すると、すべての接続が報告されているわけではない。

STPにはPEの2次元配列がある。たとえば、完全なPEの16x16配列と、「halo」と呼ばれる単純化されたPEの4レーンである。 STPには、スカラー レーン(SCL)と呼ばれるスカラープロセッサがあり、小さな命令メモリで制御命令を追加する。STPの最後のコンポーネントは、シート ジェネレーター(SHG)と呼ばれるロードストアユニットであり、シートはPVCメモリアクセスユニットである[2]

SR3HXのデザインの要約[編集]

SR3HX PVCは、64 ビットARMv8aのARM Cortex-A53英語版 CPU、8x画像処理ユニット(IPU)コア、512MB LPDDR4、MIPI、PCIeを備えている。IPUコアにはそれぞれ、16 x 16の2次元配列として配置された256の処理要素(PE)で構成される512のALUがある。これらのコアは、カスタムVLIW ISAを実行する。処理要素ごとに2つの16ビットALUがあり、independent、joined、fusedという3つの異なる方法で動作できる[9]。SR3HX PVCは、28 nmプロセス英語版HKMGプロセスを使用してTSMCによってSiPとして製造されている[1]。これは、Intelとのパートナーシップで4年以上かけて設計された(コードネーム: Monette Hill)[10]。Googleは、SR3HX PVCはSnapdragon 835英語版よりも7〜16倍エネルギー効率が高いと主張している。また、SR3HX PVCは1秒あたり3兆回の操作を実行できるため、HDR+はSnapdragon 835よりも5倍速く、10分の1未満のエネルギーで実行できる[11]。画像処理用のHalide英語版と機械学習用のTensorFlowをサポートしている。現在のチップは426MHzで動作し、単一のIPUは1TeraOPS以上で実行できる[2][8]

出典[編集]

  1. ^ a b Cutress. “Hot Chips 2018: The Google Pixel Visual Core Live Blog (10am PT, 5pm UTC)”. www.anandtech.com. 2019年2月2日閲覧。
  2. ^ a b c d e f g h Hennessy, John; Patterson, David (2017). Computer Architecture: A Quantitative Approach (Sixth ed.). Morgan Kaufmann. pp. 579-606. ISBN 978-0-12-811905-1 
  3. ^ Google Pixel 2 XL Teardown” (英語). iFixit (2017年10月19日). 2019年2月2日閲覧。
  4. ^ Google Pixel 3 XL Teardown” (英語). iFixit (2018年10月16日). 2019年2月2日閲覧。
  5. ^ Pixel 2 DxOMark”. 2021年6月5日閲覧。
  6. ^ Pixel 3 DxOMark”. 2021年6月5日閲覧。
  7. ^ iPhone XR DxOMark”. 2021年6月5日閲覧。
  8. ^ a b c d The Pixel Visual Core: Google’s Fully Programmable Image, Vision and AI Processor for Mobile Devices. HotChips2018”. 2021年6月5日閲覧。
  9. ^ Pixel Visual Core (PVC) - Google - WikiChip” (英語). en.wikichip.org. 2019年2月2日閲覧。
  10. ^ Google Partnered with Intel for the Pixel Visual Core Chip in the Pixel 2” (英語). xda-developers (2017年10月25日). 2019年2月2日閲覧。
  11. ^ Pixel Visual Core: image processing and machine learning on Pixel 2” (英語). Google (2017年10月17日). 2019年2月2日閲覧。