Modul 7 — PERFORMANȚĂ ȘI GRAFICĂ

Lecția 7.2 — CPU-bound vs GPU-bound

limitarea performanței, rolul CPU, rolul GPU

Începe Lecția

Introducere

De ce un joc rulează la 60 FPS într-o scenă și scade la 30 FPS în alta? Răspunsul depinde de cine este gâtul de sticlă: CPU-ul sau GPU-ul. Dacă procesorul nu poate calcula logica jocului suficient de rapid, GPU-ul așteaptă fără lucru — jocul este CPU-bound. Dacă GPU-ul nu poate randa scena la timp, CPU-ul termină devreme și așteaptă — jocul este GPU-bound. Identificarea bottleneck-ului este primul pas în optimizare.

Această lecție acoperă conceptul de limitare a performanței: rolul CPU-ului (logica jocului, IA, fizică, draw calls) vs. rolul GPU-ului (geometrie, rasterizare, shading, post-processing) și cum se determină care componentă este factorul limitativ într-un scenariu dat.

Scopul nu este etichetarea jocurilor ca CPU-bound sau GPU-bound, ci înțelegerea de ce un joc cu oraș populat tinde să fie limitat de CPU, de ce unul cu grafică ultra-detaliată este limitat de GPU și cum dezvoltatorii echilibrează sarcina pe hardware fix pentru framerate constant.

Teorie Structurată

7.2.1 — Definiție CPU-bound

  • Un task/job/proces este CPU-bound (compute-bound) când timpul de finalizare este determinat principalment de viteza procesorului central
  • Utilizare procesor ridicată, poate ajunge la 100% pentru secunde sau minute
  • Întreruperile generate de periferice pot fi procesate lent sau întârziate nedefinit
  • CPU-bound jobs petrec majoritatea timpului de execuție pe calcule efective ("number crunching"), nu pe comunicarea cu periferice

7.2.2 — CPU-bound vs I/O-bound

  • Opusul CPU-bound este I/O-bound: task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • Există și memory-bound: limitat de viteza memoriei
  • Taskurile CPU-bound pot beneficia de tehnici de paralelizare (multithreading) dacă algoritmul o permite
  • Pot distribui sarcina pe mai multe core-uri CPU

7.2.3 — Conceptul de bottleneck

  • Conceptul a fost dezvoltat la primele computere, când se vedea vizual o componentă lucrând și alta inactivă
  • Componentele: CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • Computerele care foloseau predominant perifericele erau I/O bound
  • Stabilirea că un computer este frecvent CPU-bound implică: upgrade CPU sau optimizarea codului va îmbunătăți performanța generală
  • În computerele moderne, bottleneck-ul se schimbă rapid între componente
  • Este posibil să ai 100% utilizare CPU cu impact minim pe alte componente
  • Upgrade CPU nu are întotdeauna efect dramatic – acum e doar un factor din mulți

7.2.4 — Definiție GPU

  • GPU (Graphics Processing Unit) = circuit electronic specializat pentru procesare de imagini digitale și accelerarea graficii computerizate
  • Prezent ca componentă pe placă grafică discretă sau integrat pe motherboard, telefoane mobile, PC-uri, workstation-uri, console de jocuri
  • GPU în uz modern include abilitatea de a efectua intern calculele necesare pentru diverse sarcini grafice (rotirea și scalarea imaginilor 3D)
  • Poate rula programe personalizate numite shadere
  • Diferă de controlerele video anterioare care nu aveau capacități de calcul intern

7.2.5 — Arhitectura și paralelismul GPU

  • Funcțiile grafice sunt în general independente → potrivite pentru implementare pe motoare de calcul separate
  • GPU-urile moderne includ sute sau mii de unități de calcul
  • Structura paralelă le face utile pentru probleme "embarrassingly parallel"
  • Performanța GPU se măsoară în FLOPS (floating point operations per second); GPU-urile din 2010s-2020s: teraflops (TFLOPS)
  • Factori de performanță: dimensiunea traseelor în semiconductor, frecvența ceasului, numărul și dimensiunea cache-urilor
  • Streaming multiprocessors (SM) pentru Nvidia, Compute Units (CU) pentru AMD, Xe cores pentru Intel

7.2.6 — GPU dedicat vs GPU integrat

  • GPU dedicat (discrete): folosește RAM dedicat GPU-ului (ex: GDDR SDRAM), performanță mare
  • GPU integrat (IGP/integrated): folosește o porțiune din RAM-ul sistemului, mai ieftin dar mai puțin capabil
  • IGP: bandwidth până la 128 GB/s, GPU discret: peste 1000 GB/s între VRAM și GPU core
  • Memoria poate limita performanța GPU-ului
  • UMA (Unified Memory Architecture): CPU și GPU partajează același pool de RAM (AMD APU, Intel HD, PS5, Xbox Series)

7.2.7 — Evoluția GPU în console

  • Termenul "GPU" a fost inventat de Sony pentru PlayStation (1994), GPU proiectat de Toshiba
  • Popularizat de Nvidia în 1999 cu GeForce 256 "primul GPU din lume"
  • PS4 și Xbox One (2013): GPU-uri bazate pe AMD Radeon HD 7850/7790
  • PS5 și Xbox Series X/S (2020): GPU-uri bazate pe arhitectura RDNA 2
  • Nintendo 64 (1996): primul hardware T&L GPU pe consolă de casă (Reality Coprocessor)

7.2.8 — GPGPU

  • GPU-urile au devenit dispozitive de calcul generalizate cu GeForce 8 series (unități de stream processing generice)
  • GPU computing / GPGPU: calcule cu scop general pe GPU
  • Aplicații: machine learning, procesare de imagini, algebră liniară, statistici, reconstrucție 3D
  • GPU calculates forty times faster than CPU in certain circumstances (Folding@home)
  • CUDA (Nvidia, 2007), OpenCL (standard deschis), DirectCompute

7.2.9 — Energie și performanță

  • GPU-urile au crescut continuu în consum de energie
  • Performanța pe watt (performance per watt) traduce direct în performanță maximă a unui sistem
  • Design-urile GPU sunt foarte scalabile: multiple chipuri pe aceeași placă video sau plăci video multiple
  • Performanța maximă este limitată de puterea electrică aspirată și căldura ce poate fi disipată

Legătura Fizică — Informatică

Definiție CPU-bound

  • Un task/job/proces este CPU-bound (compute-bound) când timpul de finalizare este determinat principalment de viteza procesorului central
  • Utilizare procesor ridicată, poate ajunge la 100% pentru secunde sau minute
  • CPU-bound jobs petrec majoritatea timpului de execuție pe calcule efective ("number crunching"), nu pe comunicarea cu periferice

CPU-bound vs I/O-bound

  • Opusul CPU-bound este I/O-bound: task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • Taskurile CPU-bound pot beneficia de tehnici de paralelizare (multithreading) dacă algoritmul o permite
  • Pot distribui sarcina pe mai multe core-uri CPU

Conceptul de bottleneck

  • Conceptul a fost dezvoltat la primele computere, când se vedea vizual o componentă lucrând și alta inactivă
  • Componentele: CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • Computerele care foloseau predominant perifericele erau I/O bound
  • Stabilirea că un computer este frecvent CPU-bound implică: upgrade CPU sau optimizarea codului va îmbunătăți performanța generală
  • În computerele moderne, bottleneck-ul se schimbă rapid între componente
  • Este posibil să ai 100% utilizare CPU cu impact minim pe alte componente
  • Upgrade CPU nu are întotdeauna efect dramatic – acum e doar un factor din mulți

Definiție GPU

  • GPU (Graphics Processing Unit) = circuit electronic specializat pentru procesare de imagini digitale și accelerarea graficii computerizate
  • GPU în uz modern include abilitatea de a efectua intern calculele necesare pentru diverse sarcini grafice (rotirea și scalarea imaginilor 3D)

Arhitectura și paralelismul GPU

  • GPU-urile moderne includ sute sau mii de unități de calcul
  • Performanța GPU se măsoară în FLOPS (floating point operations per second); GPU-urile din 2010s-2020s: teraflops (TFLOPS)

GPU dedicat vs GPU integrat

  • GPU integrat (IGP/integrated): folosește o porțiune din RAM-ul sistemului, mai ieftin dar mai puțin capabil
  • IGP: bandwidth până la 128 GB/s, GPU discret: peste 1000 GB/s între VRAM și GPU core
  • Memoria poate limita performanța GPU-ului

GPGPU

  • GPU-urile au devenit dispozitive de calcul generalizate cu GeForce 8 series (unități de stream processing generice)
  • GPU computing / GPGPU: calcule cu scop general pe GPU
  • GPU calculates forty times faster than CPU in certain circumstances (Folding@home)

Energie și performanță

  • GPU-urile au crescut continuu în consum de energie
  • Design-urile GPU sunt foarte scalabile: multiple chipuri pe aceeași placă video sau plăci video multiple

Aplicare Directă în Console

Definiție GPU

  • Prezent ca componentă pe placă grafică discretă sau integrat pe motherboard, telefoane mobile, PC-uri, workstation-uri, console de jocuri

GPU dedicat vs GPU integrat

  • UMA (Unified Memory Architecture): CPU și GPU partajează același pool de RAM (AMD APU, Intel HD, PS5, Xbox Series)

Evoluția GPU în console

  • Termenul "GPU" a fost inventat de Sony pentru PlayStation (1994), GPU proiectat de Toshiba
  • Popularizat de Nvidia în 1999 cu GeForce 256 "primul GPU din lume"
  • PS4 și Xbox One (2013): GPU-uri bazate pe AMD Radeon HD 7850/7790
  • PS5 și Xbox Series X/S (2020): GPU-uri bazate pe arhitectura RDNA 2
  • Nintendo 64 (1996): primul hardware T&L GPU pe consolă de casă (Reality Coprocessor)

Exemplu Real de Hardware

Arhitectura și paralelismul GPU

  • Streaming multiprocessors (SM) pentru Nvidia, Compute Units (CU) pentru AMD, Xe cores pentru Intel

GPU dedicat vs GPU integrat

  • GPU dedicat (discrete): folosește RAM dedicat GPU-ului (ex: GDDR SDRAM), performanță mare

GPGPU

  • CUDA (Nvidia, 2007), OpenCL (standard deschis), DirectCompute

Probleme Frecvente Asociate

⚠️ Probleme asociate cu CPU-bound vs GPU-bound

Problemele frecvente asociate cu această temă vor fi detaliate pe măsură ce cursul avansează.

Recapitulare

  • Definiție CPU-bound: Un task/job/proces este CPU-bound (compute-bound) când timpul de finalizare este determinat principalment de viteza procesorului central
  • CPU-bound vs I/O-bound: Opusul CPU-bound este I/O-bound: task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • Conceptul de bottleneck: Conceptul a fost dezvoltat la primele computere, când se vedea vizual o componentă lucrând și alta inactivă
  • Definiție GPU: GPU (Graphics Processing Unit) = circuit electronic specializat pentru procesare de imagini digitale și accelerarea graficii computerizate
  • Arhitectura și paralelismul GPU: Funcțiile grafice sunt în general independente → potrivite pentru implementare pe motoare de calcul separate
  • GPU dedicat vs GPU integrat: GPU dedicat (discrete): folosește RAM dedicat GPU-ului (ex: GDDR SDRAM), performanță mare
  • Evoluția GPU în console: Termenul "GPU" a fost inventat de Sony pentru PlayStation (1994), GPU proiectat de Toshiba
  • GPGPU: GPU-urile au devenit dispozitive de calcul generalizate cu GeForce 8 series (unități de stream processing generice)
  • Energie și performanță: GPU-urile au crescut continuu în consum de energie

Quiz — 5 Întrebări

Întrebarea 1

Care afirmație este corectă despre: Opusul CPU-bound este I/O-bound?

  • a) dimensiunea traseelor în semiconductor, frecvența ceasului, numărul și dimensiunea cache-urilor
  • b) CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • c) limitat de viteza memoriei
  • d) task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
Arată răspunsul

d) — task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)

Întrebarea 2

Care afirmație este corectă despre: Componentele?

  • a) dimensiunea traseelor în semiconductor, frecvența ceasului, numărul și dimensiunea cache-urilor
  • b) CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • c) task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • d) limitat de viteza memoriei
Arată răspunsul

b) — CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante

Întrebarea 3

Care afirmație este corectă despre: Factori de performanță?

  • a) limitat de viteza memoriei
  • b) dimensiunea traseelor în semiconductor, frecvența ceasului, numărul și dimensiunea cache-urilor
  • c) task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • d) CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
Arată răspunsul

b) — dimensiunea traseelor în semiconductor, frecvența ceasului, numărul și dimensiunea cache-urilor

Întrebarea 4

Care afirmație este corectă despre: GPU dedicat (discrete)?

  • a) task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • b) limitat de viteza memoriei
  • c) CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • d) folosește RAM dedicat GPU-ului (ex: GDDR SDRAM), performanță mare
Arată răspunsul

d) — folosește RAM dedicat GPU-ului (ex: GDDR SDRAM), performanță mare

Întrebarea 5

Care afirmație este corectă despre: PS4 și Xbox One (2013)?

  • a) CPU, unități de bandă, hard disk-uri, cititoare de cartele, imprimante
  • b) task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)
  • c) GPU-uri bazate pe AMD Radeon HD 7850/7790
  • d) limitat de viteza memoriei
Arată răspunsul

c) — GPU-uri bazate pe AMD Radeon HD 7850/7790

Exercițiu Aplicat de Gândire

🧠 Exercițiu: CPU-bound vs GPU-bound

Scenariu: Analizezi un sistem hardware care utilizează conceptul de limitarea performanței. Pe baza cunoștințelor din această lecție, răspunde la următoarele întrebări:

  • 1. Defineste pe scurt: limitarea performanței.
  • 2. Ce rol are rolul CPU în contextul hardware-ului?
  • 3. Explică relația dintre limitarea performanței și rolul GPU.
Arată rezolvarea

1. Un task/job/proces este CPU-bound (compute-bound) când timpul de finalizare este determinat principalment de viteza procesorului central

2. Opusul CPU-bound este I/O-bound: task-urile sunt limitate de viteza perifericelor (rețea, dispozitive de stocare)

3. Conceptul a fost dezvoltat la primele computere, când se vedea vizual o componentă lucrând și alta inactivă

Video Recomandat

0:00 / 0:00

Bottleneck explicat: diferența dintre limitarea CPU și GPU, și cum afectează FPS-ul în jocuri.