Sunteți pe pagina 1din 81

1.

Introducere
2. Metode pentru operații de I/E
3. Magistrale
4. Afișaje cu cristale lichide
5. Alte tipuri de afișaje
6. Adaptoare grafice
7. Discuri optice
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 1
Structura unui adaptor grafic
Memoria video
Acceleratoare grafice
Acceleratoare 3D
Unități de procesare grafică
Interfețe digitale pentru monitoare

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 2


13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 3
Controlerul grafic
Realizează principalele funcții ale adaptorului
grafic
Interfața cu magistrala sistemului
Transferuri în mod exploziv
Transferuri fără stări de așteptare la citirea
memoriei video
Memorie FIFO pentru scrierea eficientă în
memoria video

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 4


Interfața cu memoria video
Permite actualizarea imaginilor video
Registrele VGA și registrele de control
Asigură programarea adaptorului grafic
pentru funcționarea în modurile VGA
Există adaptoare care nu mai sunt compatibile
cu standardul VGA
Generatorul cursorului
Funcțiile grafice
Implementate de către acceleratoarele grafice
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 5
BIOS video
Pune la dispoziție funcții video pentru
accesul la adaptorul video
Programele BIOS ale diferitelor adaptoare
sunt diferite  programare dificilă
Standard VESA (Video Electronics Standards
Association) pentru funcțiile BIOS în
modurile cu înaltă rezoluție
Memoria video
Păstrează imaginea video  buffer de cadre
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 6
Circuitul RAMDAC (RAM Digital to Analog
Converter)
Preia imaginea digitală și o convertește în
semnale analogice
Funcțiile circuitului RAMDAC pot fi integrate
în controlerul grafic
Necesar pentru afișajele cu intrări analogice
Afișajele care funcționează în domeniul
digital reconvertesc semnalele analogice în
formă digitală
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 7
Porturi video
Permit transferul imaginilor video la monitor
Există diferite variante de porturi video
VGA (Video Graphics Array)
Interfață analogică
Proiectată pentru afișaje cu tub catodic, dar
utilizată și de unele afișaje cu cristale lichide
Pot apare zgomote electrice
Conector DB-15
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 8
VIVO (Video In Video Out)
Interfață analogică pentru conectarea la
aparate TV, aparate DVD, console (TV Out)
Semnale: S-Video (Y/C); video compus; video
pe componente (de ex., RGB)
Conector mini-DIN cu 9 pini
DVI (Digital Visual Interface)
Interfață digitală
Conector DVI-I (semnale digitale și analogice)
sau DVI-D (numai semnale digitale)
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 9
HDMI (High-Definition Multimedia Interface)
Interfață digitală pentru date video
necomprimate
Permite transmiterea pe același cablu și a
datelor audio digitale
Conectori cu 19 pini (legătură simplă) sau 29
pini (legătură duală)
DisplayPort
Interfață digitală pentru date video și audio
Destinată înlocuirii interfețelor VGA și DVI
Conectori cu 20 pini pentru 1, 2 sau 4 canale
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 10
Structura unui adaptor grafic
Memoria video
Acceleratoare grafice
Acceleratoare 3D
Unități de procesare grafică
Interfețe digitale pentru monitoare

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 11


Poate fi cu port unic sau cu port dual
Memorie video cu port unic
Portul de date este utilizat pentru a
reîmprospăta ecranul și a înscrie noi date
Memorie video cu port dual
Unul din porturi este utilizat pentru
actualizarea imaginilor în memorie
Al doilea port este cu acces serial și este
utilizat pentru reîmprospătarea imaginilor
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 12
Rata de transfer a memoriei video
Rata de transfer maximă  lățime de bandă
Influențată de tehnologia și timpul de acces
al memoriei video
Lățimea de bandă trebuie partajată de:
circuitele de reîmprospătare a ecranului,
UCP, controlerul grafic
Este necesar ca 30 .. 50% din lățimea de
bandă să fie rezervată pentru alte funcții
decât cea de reîmprospătare
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 13
Memoria DDR-400 (PC3200)
Rata de transfer maximă: 3.200 MB/s
Rata de transfer medie: ~1.600 MB/s
Memoria DDR2-667 (PC2-5300)
Rata de transfer maximă: 5,336 GB/s
Memoria DDR3-2133 (PC3-17000)
Rata de transfer maximă: 17 GB/s
Memoria DDR4-3200 (PC4-25600)
Rata de transfer maximă: 25,6 GB/s
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 14
GDDR (Graphics Double Data Rate)
Proiectată de ATI Technologies cu
colaborarea comitetului JEDEC
Diferite versiuni: GDDR2 .. GDDR5
GDDR2 și GDDR3: bazate pe tehnologia DDR2
GDDR4 și GDDR5: bazate pe tehnologia DDR3
Tensiune redusă: 1,8 V .. 1,5 V  energie
consumată și căldură disipată mai reduse
Semnale de strob separate pentru citire și
scriere
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 15
GDDR5
Combină performanța ridicată cu funcționare
stabilă și costuri de implementare reduse
Organizarea memoriei: 32
Semnal de ceas pentru comenzi (CK, CK#)
Semnale de ceas pentru scriere (WCK, WCK#)
Doi octeți de date sunt aliniați la un semnal
WCK
Exemplu pentru o rată a datelor de 5 Gbiți/s:
fCK = 1,25 GHz; fWCK = 2,5 GHz
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 16
Inversarea magistralei de date
Reduce numărul biților de zero transmiși
Indicată cu un semnal DBI# pentru fiecare
octet
Liniile de transmisie au terminatoare la nivel
logic ridicat  se reduce puterea disipată
Inversarea magistralei de adrese
Antrenarea semnalelor
Ajustarea fazei pentru semnalele de ceas,
date și adrese
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 17
Antrenarea liniilor de adrese: alinierea
magistralei de adrese la semnalul de ceas CK
Alinierea semnalului WCK la semnalul CK
Antrenarea liniilor de date: alinierea
magistralei de date la semnalul WCK
corespunzător
Este posibilă o re-antrenare “ascunsă” a
datelor
Calibrarea: îmbunătățește fiabilitatea
Auto-calibrare: curentul generat, impedanța
de terminare
Ajustare controlată prin software
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 18
Acces de citire/scriere în mod exploziv la
memoria internă: 8 biți/pin  256 biți (două
cicluri CK)
Rate maxime de transfer de 16 .. 28 GB/s
pentru 32 pini
Detectarea erorilor
Pini EDC (Error Detection Code) dedicați
pentru transmiterea codurilor CRC la
controler
Cod CRC: pentru fiecare octet de date + linia
DBI#
Permite detectarea erorilor de unul și doi biți
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 19
Gestiunea energiei consumate
Facilități care permit consumul de energie
numai atunci când este necesar
Frecvența ceasului și rata datelor sunt
scalabile: 5 Gbiți/s .. 200 Mbiți/s
Mod cu consum redus pentru nucleul DRAM
Nivele multiple pentru impedanța de
terminare: creșterea impedanței la rate
reduse ale datelor
Tensiune de alimentare redusă: 1,5 V
Inversarea magistralei de date și de adrese
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 20
Structura unui adaptor grafic
Memoria video
Acceleratoare grafice
Acceleratoare 3D
Unități de procesare grafică
Interfețe digitale pentru monitoare

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 21


Conțin circuite specializate pentru execuția
operațiilor matematice necesare redării
imaginilor grafice
Eliberează UCP de sarcina execuției acestor
operații
Primele acceleratoare grafice: adaptoare AVGA
(Accelerated VGA)
Următoarele acceleratoare grafice:
acceleratoare 2D
Legătura între circuitele acceleratorului și SO
se realizează printr-un driver
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 22
Funcții grafice 2D obișnuite:
Transferuri pe blocuri de biți (BitBlt – Bit Block
Transfer)
Două hărți de biți sunt combinate printr-o
operație de rastru  operator boolean
Rezultatul este transferat în zona destinație
Blitter: circuit dedicat pentru operația BitBlt
Trasarea liniilor
Desenarea unor dreptunghiuri, cercuri
Umplerea unor suprafețe sau poligoane
Adăugarea culorii
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 23
Acceleratoare multimedia: acceleratoare
grafice extinse cu funcții de accelerare
audio și video
Funcții:
Decodificarea șirurilor de date audio
Scalarea imaginilor video după direcțiile x, y
Conversia semnalelor video digitale în
semnale RGB
Decomprimarea imaginilor video
reprezentate în diferite formate
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 24
Structura unui adaptor grafic
Memoria video
Acceleratoare grafice
Acceleratoare 3D
Unități de procesare grafică
Interfețe digitale pentru monitoare

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 25


Acceleratoare 3D
Imagini 3D
Operații 3D

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 26


Sunt gestionate utilizând modele abstracte
Un obiect este reprezentat ca un set de
puncte definite prin coordonatele sale x, y
și z  poziția vârfurilor
Dacă se conectează vârfurile obiectului
prin linii, se obțin suprafețe  pot fi
umplute cu o anumită culoare sau textură
Fiecare obiect 3D este compus dintr-un
număr mare de triunghiuri (sau poligoane)
care descriu suprafața sa
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 27
Grafica 3D animată necesită execuția unei
serii de calcule geometrice care definesc
poziția obiectelor în spațiul 3D
Calculele geometrice care manipulează
vârfurile triunghiurilor pot fi executate de
UCP sau procesorul grafic
Procesorul grafic trebuie să convertească
aceste triunghiuri în suprafețe solide 
sunt necesare calcule intense
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 28
În lumea reală, obiectele interacționează
unele cu altele
Se utilizează ecuații matematice complexe
pentru a determina dacă un obiect este
vizibil într-o scenă dintr-un unghi dat
Pe lângă componentele de culoare, pentru
fiecare pixel trebuie memorată și o valoare
alfa
Indică gradul de transparență al pixelului în
imaginea finală
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 29
O altă informație care trebuie memorată:
adâncimea în spațiu sau coordonata z
Acceleratorul determină valoarea z a pixelilor
obiectelor dintr-un plan și le afișează pe cele
cu o valoare z mai mică
Informația de adâncime a pixelilor este
memorată într-un buffer separat  buffer z
De obicei, în bufferul z se alocă 32 de biți
pentru fiecare pixel

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 30


La fiecare actualizare a imaginii, trebuie
recalculată culoarea și adâncimea pixelilor
Aplicarea diferitelor calcule 3D asupra scenei
 procesul de redare (rendering)
Se completează toate punctele de pe
suprafața obiectului care a fost memorat
doar ca un set de vârfuri
Pe ecranul monitorului se va desena un
obiect solid cu efecte 3D

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 31


Acceleratoare 3D
Imagini 3D
Operații 3D

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 32


Operațiile 3D sunt executate în două
etape:
Etapa geometrică: decuparea,
transformarea, iluminarea
Etapa de redare: umbrirea, maparea
texturilor cu adăugarea efectului de
perspectivă, filtrarea texturilor, mixajul alfa
La acceleratoarele 3D actuale, operațiile din
ambele etape sunt executate de procesorul
grafic
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 33
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 34
Decupare
Determină care parte a unui obiect care este
vizibilă pe ecran
Elimină părțile care nu sunt vizibile
Iluminare
Obiectele sunt modelate de sursele de
lumină din cadrul scenei
Efectele de lumină creează nuanțe ale
culorilor, reflexii de lumină, umbre
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 35
Transformare
Translatare: deplasarea fiecărui punct cu o
distanță fixă în aceeași direcție
Reflexie: transformarea unui obiect în
imaginea sa în oglindă
Reflexie cu glisare: combinarea reflexiei cu
translatarea de-a lungul axei de reflexie
Scalare: transformare liniară pentru
modificarea dimensiunii obiectelor

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 36


Mozaicare
Divizarea poligoanelor în structuri mai mici
pentru redare
Divizarea în triunghiuri: triangulație

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 37


Umbrire (hașurare)
Permite reprezentarea
realistă a obiectelor 3D pe un
ecran 2D
Algoritmi: Gouraud, Phong
Citirea informațiilor de
culoare ale vârfurilor
Interpolarea intensităților
pentru componentele de
culoare
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 38
Maparea texturilor
Adăugarea detaliilor de suprafață (texturi) la
poligoanele care reprezintă obiectele
Încărcarea unor elemente de textură (texeli)
dintr-o hartă de biți
Combinarea elementelor de textură
Scrierea pixelului rezultat în memoria video
Aplicarea unei singure texturi
Multi-texturare: se aplică o combinație de
texturi unui obiect
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 39
Texturile pot necesita un spațiu ridicat în
memorie  se utilizează compresia
Texturile trebuie corectate pentru a crea
efectul de perspectivă

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 40


Filtrarea texturilor
Reduce unele efecte nedorite care pot apare
la maparea texturilor
Culoarea unui nou pixel este determinată
prin interpolare între culorile mai multor
texeli din textura originală
Filtrarea bi-liniară: se utilizează media
ponderată a patru texeli cei mai apropiați de
un anumit texel

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 41


Filtrarea tri-liniară
Rezoluția texturii este redusă atunci când
distanța față de obiect crește
Acceleratoarele 3D păstrează în memorie mai
multe variante ale texturii  “MIP mapping”
Combinarea acestei facilități cu filtrarea bi-
liniară

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 42


Încețoșarea
Estomparea gradată a obiectelor la distanță
Scena va apare mai realistă  iluzia unor
obiecte aflate la distanță
Permite execuția mai rapidă a prelucrării 3D
Mixajul alfa
Utilizat pentru a produce efectul de
transparență al unor obiecte (de ex.,
ferestre)

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 43


Eliminarea efectului de zimțuire
Liniile oblice: aproximate prin combinarea
unor segmente verticale cu segmente
orizontale  apare efectul de zimțuire
Eliminarea acestui efect (“anti-aliasing”):
Modificarea culorii pixelilor din apropierea
contururilor
Se utilizează culoarea de fond mixată gradat
cu cea a obiectului
Se reduce claritatea contururilor

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 44


Structura unui adaptor grafic
Memoria video
Acceleratoare grafice
Acceleratoare 3D
Unități grafice de prelucrare
Interfețe digitale pentru monitoare

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 45


Unități grafice de prelucrare
Prezentare generală
Calcul GPGPU
Arhitectura CUDA
Unitatea grafică NVIDIA GP100

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 46


GPU – Graphics Processing Unit
Procesoare grafice dedicate pentru stații
de lucru, calculatoare PC, console de jocuri
Utilizate inițial pentru accelerarea etapei de
redare a graficii 3D (ex., maparea texturilor)
Ulterior utilizate și pentru accelerarea
calculelor geometrice (rotire, translatare)
GPU conțin unități pentru umbrire,
maparea texturilor, eliminarea efectului de
zimțuire etc.
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 47
Unități de umbrire pentru vârfuri
Transformă poziția 3D a fiecărui vârf în
coordonatele 2D de pe ecran și valoarea de
adâncime pentru bufferul z
Modifică atributele vârfurilor: poziția,
culoarea, coordonatele texturii
Unități de umbrire pentru figuri geometrice
Generează figuri geometrice sau adaugă
detalii volumetrice obiectelor

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 48


Unități de umbrire pentru pixeli/fragmente
Determină culoarea, adâncimea z și valoarea
alfa pentru fiecare pixel sau fragment
Unități de umbrire unificate
Unități programabile
Pot executa diferite tipuri de operații de
umbrire (vârfuri, figuri geometrice, pixeli)
GPU conțin o matrice de unități de calcul și o
unitate care distribuie operațiile de executat
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 49
Arhitectura cu unități programabile permite
o utilizare mai flexibilă a resurselor hardware
Unitățile programabile se pot utiliza și pentru
alte tipuri de calcule
Rezultă o arhitectură paralelă flexibilă
GPU conțin și module pentru accelerarea
2D, compresia MPEG, decodificarea
imaginilor video de înaltă definiție

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 50


GPU pot fi dedicate sau integrate
GPU dedicate
Utilizate în plăcile grafice  interfațate cu
placa de bază printr-o magistrală PCI Express
sau interfață AGP (Accelerated Graphics Port)
Au o memorie dedicată pe placă
Exemple
AMD Radeon HD 8xxxM (ex., 8970M)
NVIDIA GeForce GTX (ex., GTX 1080)
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 51
GPU integrate
Integrate într-un set de circuite sau procesor
Utilizează o porțiune a memoriei sistemului
Au performanțe mai scăzute comparativ cu
GPU dedicate
Exemple
Intel HD Graphics (ex., UHD Graphics 630)
Seria de procesoare APU (Accelerated
Processing Unit) AMD A-10
NVIDIA din procesoarele Tegra (K1, X1)
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 52
Proiectarea GPU a fost influențată de
interfețele de programare 2D și 3D
Implementează în hardware funcții API
OpenGL (Open Graphics Library)
Pentru diferite platforme și limbaje
Funcții pentru desenarea scenelor 3D pe baza
unor primitive
Direct3D (componentă a DirectX)
Numai pentru sistemele de operare Microsoft
Interfață de nivel scăzut cu funcțiile hardware 3D
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 53
Tehnologii pentru conectarea GPU multiple
de pe mai multe plăci grafice
NVIDIA: SLI (Scalable Link Interface)
2 .. 4 plăci grafice identice sunt conectate
printr-o placă de bază (PCIe x 16)
AMD: CrossFireX
Se pot conecta până la 4 plăci grafice
Plăcile grafice pot fi diferite
Plăcile au conectori externi
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 54
Unități grafice de prelucrare
Prezentare generală
Calcul GPGPU
Arhitectura CUDA
Unitatea grafică NVIDIA GP100

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 55


GPGPU (General Purpose computing on
GPU)
Unitățile de procesare ale GPU furnizează
o putere masivă de calcul în VM
Exemplu: un singur procesor GPU NVIDIA
GP100 (3.584 nuclee) atinge 10,6 TFLOPS
Sistemul pipeline grafic poate fi utilizat și
pentru aplicații generale
Performanțele pot fi cu ordine de mărime
mai mari decât cele ale UCP convenționale
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 56
GPU pot procesa vârfuri și pixeli/fragmente
independente  procesoare de flux
Flux: set de înregistrări care necesită calcule
similare
Funcție nucleu (kernel): se aplică fiecărui
element din flux
Nu se pot utiliza memorii partajate
Aplicații GPGPU ideale: seturi mari de date,
paralelism ridicat, dependențe reduse
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 57
Dezavantaje ale calculului GPGPU:
Programatorii trebuie să cunoască interfețele
de programare grafice și arhitectura GPU
Problemele trebuie exprimate în termeni de
coordonate, texturi, funcții de umbrire
Necesitatea utilizării unor limbaje de
programare grafice: OpenGL, DirectX, Cg
Extensii API pentru execuția unor funcții
ale programelor pe unitățile GPU: CUDA
(NVIDIA), OpenCL (Khronos Group)
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 58
Unități grafice de prelucrare
Prezentare generală
Calcul GPGPU
Arhitectura CUDA
Unitatea grafică NVIDIA GP100

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 59


CUDA (Compute Unified Device Architecture)
Arhitectură software și hardware
Permite GPU executarea programelor scrise în
limbajele C, C++, Fortran, OpenCL
Permite utilizarea interfeței de programare API
DirectCompute (Microsoft)
Permite accesul direct la resursele GPU pentru
calcule generale
Exploatează posibilitatea GPU de a opera
asupra matricelor mari în paralel
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 60
Un program CUDA apelează funcții nucleu
(kernel)  se execută prin fire de execuție
Firele de execuție sunt organizate în
blocuri și grupe de blocuri (grile)
Bloc de fire de execuție:
Set de fire de execuție concurente
Comunică printr-o memorie partajată
Fiecare fir de execuție are un identificator,
registre, memorie privată, intrări, ieșiri
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 61
Grilă de blocuri:
Grup de blocuri cu fire de execuție
Blocurile execută aceeași funcție nucleu
Asigură sincronizarea între apelurile de
funcții dependente între ele
Rezultatele sunt partajate într-o memorie
globală alocată pentru o aplicație 
sincronizare globală

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 62


13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 63
Ierarhia firelor de execuție se execută pe o
ierarhie de procesoare din GPU
Fire de execuție: executate de nuclee CUDA
și alte elemente de execuție
Blocuri de fire de execuție: executate de un
multiprocesor de flux (SM – Streaming
Multiprocessor)
Grup de 32 fire de execuție: urzeală (warp)
Grile de blocuri: executate de GPU

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 64


Adresare virtuală unificată (CUDA 4)
Pune la dispoziție un singur spațiu de adrese
virtuale pentru memoria UCP și GPU
Memorie unificată (CUDA 6)
O parte a memoriei fizice a GPU este
partajată între UCP și GPU
Programele CUDA migrează datele alocate în
memoria unificată între GPU și UCP
Memoria modificată de UCP trebuie
sincronizată cu memoria GPU
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 65
Unități grafice de prelucrare
Prezentare generală
Calcul GPGPU
Arhitectura CUDA
Unitatea grafică NVIDIA GP100

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 66


Unitatea grafică NVIDIA GP100 (1)
Utilizează o nouă arhitectură, Pascal
Arhitecturi precedente: Fermi, Kepler,
Maxwell
Caracteristici principale:
15,3 miliarde tranzistoare, tehnologie 16 nm
Utilizează interconexiunea NVLink a NVIDIA,
cu o rată de transfer de până la 160 GB/s
Integrează o memorie stivuită HBM2 (High
Bandwidth Memory 2), 16 GB .. 32 GB
Eficiență crescută a puterii consumate
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 67
Unitatea grafică NVIDIA GP100 (2)
O implementare completă conține:
6 unități GPC (Graphics Processing Cluster)
30 unități TPC (Texture Processing Cluster)
60 unități SM cu 64 nuclee CUDA (3.840
nuclee) și 4 unități de texturare
8 controlere de memorie de 512 biți
(interfață de 4096 biți cu memoria)
4 stive de memorii HBM2 DRAM
Memorie cache L2 comună pt. unitățile SM
Planificator global GigaThread Engine
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 68
Unitatea grafică NVIDIA GP100 (3)

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 69


Unitatea grafică NVIDIA GP100 (4)
Fiecare unitate SM conține:
64 nuclee CUDA cu precizie simplă (SP)
UAL pentru numere întregi
Unitate de calcul în VM  IEEE 754-2008
Instrucțiune de înmulțire și adunare fuzionată
32 unități cu precizie dublă (DP)
16 unități Load/Store (LD/ST)
16 unități pentru funcții speciale (SFU) 
funcții transcendentale
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 70
Unitatea grafică NVIDIA GP100 (5)

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 71


Unitatea grafică NVIDIA GP100 (6)
Firele de execuție sunt planificate în grupe
de câte 32 (urzeli)
Fiecare unitate SM conține:
Două planificatoare pentru urzeli  asigură
performanțe îmbunătățite și reducerea
puterii consumate
Patru unități de lansare în execuție
Din fiecare urzeală, pot fi lansate în
execuție două instrucțiuni în fiecare ciclu
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 72
Unitatea grafică NVIDIA GP100 (7)
Subsistemul de memorie
Fiecare unitate SM conține o memorie cache
de instrucțiuni
Există o memorie separată cache L1 de date,
care se poate utiliza și ca memorie de textură
4096 KB de memorie cache L2 unificată:
permite partajarea datelor între unitățile SM
64 KB de memorie partajată
Seturile de registre și memoriile sunt
protejate cu un cod ECC
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 73
Unitatea grafică NVIDIA GP100 (8)
Acceleratorul NVIDIA Tesla P100
Bazat pe arhitectura GPU Pascal și pe
modelul de calcul paralel CUDA
Proiectat ca accelerator pentru centrele de
date
Conține un procesor grafic GP100
Număr de nuclee CUDA: 56 x 64 = 3.584
Performanța în VM cu precizie simplă: 10,6
TFLOPS; cu precizie dublă: 5,3 TFLOPS
Dimensiunea memoriei: 4x4 = 16 GB (HBM2)
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 74
Unitatea grafică NVIDIA GP100 (9)

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 75


Principala componentă a unui adaptor grafic
este controlerul grafic
Conține interfața cu magistrala sistemului; viteza
acesteia este un factor important de performanță
Porturile video permit combinarea imaginilor
video de la alte surse cu imaginile grafice
Rata de transfer a memoriei video are un
impact major asupra performanțelor
Memorii cu port dual: actualizarea imaginilor și
reîmprospătarea ecranului se pot efectua în paralel
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 76
Memoria GDDR5 are facilități avansate pentru
performanță ridicată și funcționare stabilă
Inversarea magistralei de date și de adrese;
antrenarea semnalelor; calibrare; detecția erorilor
Acceleratoarele 3D sunt necesare pentru
conversia realistă a obiectelor 3D în imagini 2D
Pentru fiecare pixel al unui obiect 3D, trebuie
memorată o valoare alfa și coordonata z
Operațiile 3D sunt executate în două etape:
etapa geometrică și etapa de redare
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 77
GPU se utilizează pentru accelerarea etapei
geometrice și a etapei de redare a graficii 3D
Pot fi dedicate sau integrate într-un set de circuite
sau procesor
GPU conțin un număr mare de nuclee de calcul
programabile pentru diferite tipuri de umbrire
Puterea de calcul a GPU se poate utiliza și pentru
alte aplicații care necesită operații vectoriale
Arhitectura CUDA permite accesul direct la
resursele GPU pentru aplicații generale
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 78
Structura unui adaptor grafic
Componente ale controlerului grafic
Funcția circuitului RAMDAC
Caracteristici ale memoriei grafice GDDR5
Inversarea magistralei de date și de adrese la
memoria grafică GDDR5
Antrenarea semnalelor la memoria grafică
GDDR5
Reprezentarea obiectelor 3D

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 79


Operații 3D executate în etapa geometrică
Operații 3D executate în etapa de redare
Tipuri de unități de umbrire conținute de GPU
GPU dedicate și integrate
Avantaje și dezavantaje ale calculului GPGPU
Arhitectura CUDA
Bloc de fire de execuție în arhitectura CUDA
Grilă de blocuri de fire de execuție în
arhitectura CUDA
13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 80
1. Care este avantajul unei memorii video cu
port dual?
2. Care sunt facilitățile de gestiune a energiei
consumate ale memoriei video GDDR5?
3. Care sunt informațiile necesare pentru
reprezentarea obiectelor 3D?
4. Care sunt operațiile executate în etapa de
redare pentru imaginile 3D?

13.12.2017 Sisteme de intrare/ieșire și echipamente periferice (06-1) 81

S-ar putea să vă placă și