Pixel Visual Core

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Pixel Visual Core (PVC) este o serie de procesoare de imagine bazate pe ARM System in Package (SiP) proiectate de Google . [1] PVC este o arhitectură de domeniu multi-core specifică pentru Image , Vision și AI pentru dispozitive mobile și în viitor pentru IoT . [2] A apărut pentru prima dată în Google Pixel 2 și 2 XL introdus pe 19 octombrie 2017. Este utilizat și în Google Pixel 3 și 3 XL .

Istorie

Google a folosit anterior procesoare , GPU-uri , IPU- uri și DSP-uri Qualcomm Snapdragon pentru a gestiona procesarea imaginilor dispozitivelor lor Google Nexus și Google Pixel . Odată cu importanța tot mai mare a tehnicilor de fotografie de calcul , Google a dezvoltat Pixel Visual Core (PVC). Google spune că PVC-ul folosește mai puțină energie decât CPU și GPU , menținând în același timp programabilitatea completă, spre deosebire de celălalt circuit integrat specific aplicației (ASIC), Unitatea de procesare a tensorului (TPU). De fapt, dispozitivele mobile clasice au un procesor de semnal de imagine (ISP) care are o funcție predeterminată de procesare a imaginii . Pe de altă parte, PVC are o funcționalitate flexibilă și programabilă, fără a se limita doar la procesarea imaginilor.

PVC-ul din Google Pixel 2 și 2 XL este marcat ca SR3HX X726C502. [3]

PVC-ul din Google Pixel 3 și 3 XL este marcat ca SR3HX X739F030. [4]

Datorită PVC-ului, Pixel 2 și Pixel 3 au obținut un DxOMark mobil de 98 [5] și 101. [6] Acesta din urmă a obținut, la egalitate cu iPhone XR [7] , cel mai mare scor DxoMark pentru un telefon cu o singură cameră.

Software-ul Pixel Visual Core

O reprezentare DAG a nucleelor ​​pentru programatorii din PVC

Un program tipic de procesare a imaginilor din PVC este scris în Halogen . Halogenul este un limbaj specific domeniului care permite utilizatorului să decupeze algoritmul de planificare . În acest fel dezvoltatorul poate scrie cod optimizat pentru arhitectura pe care va rula programul. În prezent, PVC acceptă doar un subset de limbaj, fără operații în virgulă mobilă și cu modele de acces la memorie limitate. [8]

Pixel Visual Core ISA

PVC are două tipuri de arhitectură de seturi de instrucțiuni (ISA) : una virtuală și una fizică . În primul rând, programul de nivel înalt este compilat în ISA virtual (VISA) , inspirat de RISC-V ISA [2] , care se abstracte complet de generația de arhitectură. Apoi, programul vISA este compilat în ISA fizic (pISA) , care este un ISL VLIW . Acest ultim pas ia în considerare parametrii arhitecturii specifice, cum ar fi dimensiunea matricei PE, dimensiunea STP etc. și explică transferurile de memorie. Decuplarea vISA de pISA face ca fosta arhitectură încrucișată și generație să fie independentă, în timp ce pISA poate fi compilat offline sau prin compilare JIT [8]

Arhitectura Pixel Visual Core

Un exemplu de Pixel Visual Core cu patru IPU-uri

Pixel Visual Core este proiectat pentru a fi o arhitectură multi-core scalabilă și eficientă din punct de vedere energetic. Miezul unui PVC este unitatea de procesare a imaginii (IPU), o unitate programabilă specifică procesării imaginilor.

Unitate de procesare a imaginilor (IPU)

Miezul IPU constă dintr-un procesor Stencil (STP), un pool de buffer de linie (LBP) și un NoC . STP este echipat în principal cu o matrice 2D D SIMD de PE-uri care pot efectua calcule stencil , adică pe o mică regiune de pixeli. Deși este similar cu matricile sistolice și calculele frontului de undă, STP are transfer de date controlat de software. [2]

Pool Buffer Line (LBP)

Deoarece una dintre cele mai costisitoare operațiuni este accesarea DRAM, fiecare STP are tampoane temporare pentru a crește localitatea datelor , și anume LBP-urile. LBP este o coadă FIFO 2-D care permite diferite dimensiuni în scriere și citire. LBP are un model multi-consumator cu un singur producător. Fiecare LBP poate avea opt LB logice și unul pentru operațiile de intrare-ieșire DMA . [8] Datorită complexității ridicate a sistemului de memorie, proiectanții din PVC susțin că controlerul LBP a fost una dintre cele mai dificile componente de proiectat. [2] NoC are o topologie inelară și este utilizat doar pentru a comunica cu nucleele învecinate pentru a păstra natura de calcul pentru costurile energetice. [2]

Stencil Processor (STP)

O reprezentare a gamei 2-D de PE-uri, PE-urile albe sunt cele complete (16x16), cele gri sunt numite „halo” (144). Nu toate conexiunile au fost raportate pentru claritatea imaginii

STP are o serie de PE 2-D, de exemplu 16x16 PE complet și patru benzi PE simplificate numite „halo” . STP are un procesor scalar normal, numit culoar scalar (SCL), care adaugă instrucțiuni de control și o mică memorie de instrucțiuni. Ultima componentă a STP este o unitate de stocare a încărcăturii numită Sheet Generator (SHG), unde „foaia” este o unitate de acces la memorie din PVC. [2]

SR3HX Rezumat de proiectare

SR3HX PVC are un procesor ARMv8a ARM Cortex-A53 pe 64 de biți, unitate de procesare a imaginilor (IPU) cu 8 nuclee, LPDDR4 de 512 MB, MIPI, PCIe. Miezurile IPU au fiecare 512 unități logice aritmetice (ALU) de 256 de elemente de procesare (PE) organizate ca o matrice 2-D 16 x 16 cu un VLIW ISA personalizat. Există 2 ALU-uri pe 16 biți pentru PE care pot funcționa în trei moduri distincte: independent, combinat, combinat. [9] SR3HX PVC este fabricat ca SiP de TSMC folosind tehnologia lor de 28HPM HKMG . [1] A fost proiectat timp de 4 ani în colaborare cu Intel (nume de cod: Monette Hill). [10] Google susține că SR3HX PVC este cu 7 până la 16x mai eficientă din punct de vedere energetic decât un Snapdragon 835 [1] și că poate efectua trei miliarde de operații pe secundă, HDR + poate merge de 5 ori mai rapid, necesitând în același timp mai puțin de o douăzecime din energia Snapdragon 835 . [11] Suportă halogenuri pentru procesarea imaginilor și TensorFlow pentru învățarea automată. [11] . Cipul curent merge la 426 MHz [2] și IPU-ul unic pot efectua mai mult de 1 TeraOPS. [8]

Notă

  1. ^ a b c Ian Cutress, Hot Chips 2018: Blogul Google Pixel Visual Core Live (10am PT, 5pm UTC) , la www.anandtech.com . Adus pe 2 februarie 2019 .
  2. ^ a b c d e f g John Hennessy și David Patterson, Arhitectura computerelor: o abordare cantitativă , Sixthition, Morgan Kaufmann, ISBN 978-0-12-811905-1 .
  3. ^ (RO) Google Pixel 2 XL demolare pe iFixit, 19 octombrie 2017. Adus pe 2 februarie 2019.
  4. ^ (EN) Detaliere Google Pixel 3 XL pe iFixit, 16 octombrie 2018. Adus pe 2 februarie 2019.
  5. ^ Pixel 2 DxOMark , pe dxomark.com .
  6. ^ Pixel 3 DxOMark , pe dxomark.com .
  7. ^ iPhone XR DxOMark , pe dxomark.com .
  8. ^ a b c d Pixel Visual Core: procesor de imagine, viziune și AI complet programabil Google pentru dispozitive mobile. HotChips2018 ( PDF ), la hotchips.org .
  9. ^ (EN) Pixel Visual Core (PVC) - Google - WikiChip pe en.wikichip.org. Adus pe 2 februarie 2019 .
  10. ^ (EN) Google a colaborat cu Intel pentru Core Chip Visual Pixel în Pixel 2 pe dezvoltatorii xda, 25 octombrie 2017. Adus pe 2 februarie 2019.
  11. ^ A b (EN) Pixel Visual Core: procesarea imaginilor și învățarea automată pe Pixel 2 pe Google, 17 octombrie 2017. Adus pe 2 februarie 2019.

Elemente conexe