# Pixel Visual Core
[[Google]] が携帯端末(PMD; personal mobile device)向けに開発した、画像処理・コンピュータビジョン用のプログラマブルなスケーラブルDSA。2〜16コアを搭載可能で、単独チップまたはSOCのIPブロックとして統合できる。**画像処理ユニット(image processing unit; IPU)**という新カテゴリの例であり、出力画像を生成するGPUの逆問題(入力画像を解析・加工する)を解く。画像信号プロセッサ(ISP; 固定機能ASIC)を、プログラマブルなカーネルの有向非巡回グラフ(DAG)へ一般化したものと位置づけられる(Source: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.7)。
## アーキテクチャ
- **二次元SIMDのProcessing Element(PE)アレイ**: 16×16個のPE(各々2個の16ビットALU・1個の16ビットMACユニット・10個の16ビットレジスタ)からなる。一次元SIMDのCPUに対し二次元配置を採用することで通信距離を最小化する。
- **halo(ハロー)**: PEアレイの周囲に配置される簡略化PEの拡張領域。ステンシル計算の境界処理のために追加され、Pixel Visual Coreでは2層のhaloで20%の面積コストに収まる。
- **NSEWシフトネットワーク**: North/South/East/West方向へPE間でデータを一括シフトする通信網。端をトーラス状に接続。
- **二次元ラインバッファ**: コア間・DMAとの間でイメージデータを受け渡す、1インスタンス128 KiBのマルチリーダーFIFO。DRAMアクセスを最小化する主要機構。
- **命令セット**: Halideコンパイラが生成するvISA(仮想ISA、RISC-Vにインスパイアされる)を、STPサイズ・halo等のパラメータでpISA(物理ISA、119ビットVLIW)へ二段階でコンパイルする。GPUにおけるPTXと同様の役割。
- 8コア実装は TSMC 28 nm、6×7.2 mm、426 MHz、187〜4500 mWの電力範囲で動作。
## 性能
CNN1においてTPU比で約1/50の性能(バッチサイズ1、TPUはバッチサイズ32)、GPU(K80)比で約半分、Haswell CPUよりやや高速。電力あたり性能では増分ベースでCPU比約100倍・GPU比約25倍・TPU比約半分に達する(Source: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.9)。
## 関連
- ソース: [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]]
- エンティティ: [[Google]] / [[Google TPU]] / [[Microsoft Catapult]] / [[Intel Crest]]
- 概念: [[ドメイン固有アーキテクチャ]] / [[AIアクセラレータ]]
## 出典
- [[@2019__MorganKaufmann__Computer Architecture - A Quantitative Approach - Chapter 7 Domain-Specific Architectures]] §7.7, §7.9