Pixel Visual Core (PVC )は、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 Snapdragon のCPU 、GPU 、IPU 、およびDSP を使用して、Google Nexus およびGoogle Pixel デバイスの画像処理 を処理していた。コンピュテーショナルフォトグラフィー の技術の重要性が増してきたことで、GoogleはPixel Visual Core(PVC)を開発した。Googleは、PVCはCPU やGPU を使用するよりも消費電力が少なく、テンソル・プロセッシング・ユニット (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サイズなど)を考慮し、メモリ移動を明示的に指定するようになっている。vISA とpISA の分離により、最初のものはクロスアーキテクチャで世代に依存せず、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] 。
出典
^ a b Cutress. “Hot Chips 2018: The Google Pixel Visual Core Live Blog (10am PT, 5pm UTC) ”. www.anandtech.com . 2019年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
^ “Google Pixel 2 XL Teardown ” (英語). iFixit (2017年10月19日). 2019年2月2日 閲覧。
^ “Google Pixel 3 XL Teardown ” (英語). iFixit (2018年10月16日). 2019年2月2日 閲覧。
^ “Pixel 2 DxOMark ”. 2021年6月5日 閲覧。
^ “Pixel 3 DxOMark ”. 2021年6月5日 閲覧。
^ “iPhone XR DxOMark ”. 2021年6月5日 閲覧。
^ a b c d “The Pixel Visual Core: Google’s Fully Programmable Image, Vision and AI Processor for Mobile Devices. HotChips2018 ”. 2021年6月5日 閲覧。
^ “Pixel Visual Core (PVC) - Google - WikiChip ” (英語). en.wikichip.org . 2019年2月2日 閲覧。
^ “Google Partnered with Intel for the Pixel Visual Core Chip in the Pixel 2 ” (英語). xda-developers (2017年10月25日). 2019年2月2日 閲覧。
^ “Pixel Visual Core: image processing and machine learning on Pixel 2 ” (英語). Google (2017年10月17日). 2019年2月2日 閲覧。