A CPU és a GPU függőségei a gyakorlatban

Fehér Krisztián weboldala
Fehér Krisztián weboldala
Tartalomhoz ugrás

A CPU és a GPU függőségei a gyakorlatban

Fehér Krisztián honlapja
Közzététel itt Érdekesség · Csütörtök 16 Nov 2023
Az, hogy a CPU "kihajt" GPU-t, már annakidején is érthetetlen volt számomra, amikor először hallottam pár éve. Ez a butaság még napjainkban is erősen tartja magát, még magyar influenszerek videóiban is. Pár éve már írtam röviden a jelenségről, most mégegyszer visszatérek rá, az új GeForce generáció tükrében. Öntsünk tehát tiszta vizet a pohárba, mert én nagyon nem értek egyet a fenti jelenséggel!

A tévhit

Az elterjedt tévhit szerint csak felsőkategóriás processzorral felszerelt gép képes a felsőbb kategóriás videokártyákból kihozni a maximumot. Ezen állítások alátámasztására a játékok közben a CPU terhelését szokták nézni és hozni példaként.

A CPU szerepe a renderelésben

A CPU szerepe elsősorban a renderelés előkészítésére korlátozódik, amikor is előkészíti az adatokat a videokártya memóriájába történő átmozgatásra. CPU-generáció függő a PCIE verzió támogatása, ez igaz. Tehát ahhoz, hogy PCIE 4.0 szabványt használjunk, nem elegendő az alaplapnak támogatnia, hanem a processzornak is. Intel 1700 esetén ez már nem probléma, de az 1200-as foglalatú processzoroknál ez például megoszlott, csak a nagyobb teljesítményű processzorok támogatták. A PCIE sín viszont csak adatmozgatásra használatos, nem a konkrét renderelésre.

A kilencvenes évek első felében még a CPU végezte a renderelést a játékok többségében, a videokártya jóformán csak a képernyőpuffer tárolásáért felelt. Természetesen manapság is lehetséges tisztán CPU alapú renderelő motorokat írni (nekem is van ilyen), de ezek nem érik el a GPU alapú renderelés sebességét.

Egy videojáték képkockájának az előállításában a processzor NEM játszik szerepet. Sőt, a CPU nem is tudja, hogy konkrétan hogyan állítja elő a kártya a képet! A CPU csupán a start pisztoly szerepét tölti be, ahol a sprintet a videokártya futja le, CPU nélkül.

Nemcsak a videojátékmotorok különböznek, hanem az is, hogy egy játékprogram hogyan használja azokat, tehát mennyire ad feladatok a CPU-nak. Ne felejtsük el, hogy egy játék nem csak képkockák esztelen rajzolásából áll, rengeteg más funkciót is el kell látnia, ami független a GPU-tól. Az influenszerek tesztjeiben is látszik, hogy más-más játék során ugyanaz a konfiguráció más és más arányban terheli a CPU-t és a GPU-t. Ez teljesen normális. De semmiképpen sem vonható le következtetésképpen az belőle, hogy a videokártya teljesítményére bármilyen hatással lenne a CPU. Még akkor sem, ha erősebb hardveres kiépítettség általánosan valóban "kellemesebb", simább futtatási élményt produkál, például gyorsabb betöltési folyamatokat.

A GPU szerepe a renderelésben

A videokártya a dedikált memóriájában tárolt adatok, továbbá a dedikáltan a kártya által végrehajtott programkód alapján állítja elő a képet. Ezt zárt rendszerként kell elképzelni, ahol a bemenet a renderelés elindításának jelzése a CPU által, a kimenet pedig egy képkocka, ami átmásolódik a számítógép "normál" RAM-jába, majd kikerül a képernyőre. A számolgatásokat renderelés folyamán a GPU végzi.

Minden más megoldás csak nagyon kicsit térhet el ettől a folyamattól, az alap mindig ugyanez a séma.

Konklúzió

A CPU sebessége nem befolyásolja semmiképpen sem a GPU renderelését, technikailag ez lehetetlen és értelmetlen feltevés. Tehát mindegy, hogy egy kétmagos Celeron processzort, vagy egy i9-es processzort használunk-e,a videokártya mindkét esetben ugyanolyan gyorsan tud renderelni és a maximumot tudja nyújtani!

Gondolatok a GeForce 4060 teljesítményéről

Általánosan elterjedt információ, miszerint a GeForce 40x széria, legalábbis az alsó része (4060, 4060Ti) a 3060-as szériához képest visszalépés lenne, lassú stb.  Elsősorban a kevesebb CUDA mag, illetve a PCIE 8 sínes (x8) támogatásának tükrében állítják sokan, hogy ezek valójában lassabb, vagy csak ugyanolyan teljesítményű kártyák, mint a 3060. Az én meglátásom szerint viszont ezek sem helytálló következtetések.

Vegyünk egy példát!

GeForce 3060: PCIE 4.0 x16, 15Gbps GDDR6 memória, 192 bites memória busz, 3584 CUDA mag, max. 170W fogyasztás, 12,74 TFLOP számítási teljesítmény
GeForce 4060: PCIE 4.0 x8,  17Gbps GDDR6 memória, 128 bites memória busz, 3072 CUDA mag, max. 115W fogyasztás, 15,11 TFLOP számítási teljesítmény.

A 4060-as tehát annak ellenére kb. 16%-kal gyorsabb, mint a 3060, hogy 15%-kal kevesebb CUDA magja van, 33%-kal lassabb memória busza és 33%-kal alacsonyabb a fogyasztása. A 4060 memóriájának a sebessége 12%-kal nagyobb, mint a 3060 esetében.

Technikai szemmel nézve ez nemhogy visszalépés lenne, hanem valóságos bravúr!

A PCIE sínek száma természetesen befolyásolja a maximális adatáteresztő képességet, de mit is jelent ez?
PCIE 4.0 esetén x16-os sebesség: 31,5 GB/s (tehát gigabájt, nem gigabit!), x8-as sebesség: 15,75 GB/s.

A PCIE sín két dolog kapcsán érdekes. Az egyik az adatok feltöltése a renderelés előtt. Állandó adatmozgatás a kártya irányában videojátékoknál nincs,vagy nem számottevő, ezért ez a szempont nem releváns. A másik az elkészült kép eljuttatása a RAM-ba, azaz ellenkező irányú adatmozgatás. Ez már releváns.

FullHD kép esetében a PCIE 4.0 x16 sebesség mellett másodpercenként így elvileg 4032 képkocka másolódhatna át a RAM-ba, x8 esetén pedig ennek a fele, tehát 2016. Mégegyszer: 2016 darab kép/másodperc x8 esetén. Természetesen a valóságban időbe telik, amíg elkészül egy kép, ennek viszont semmi, de semmi köze nincsen a PCIE sínek sebességéhez, hanem csak a kártya nyers erejétől függ.

Tehát a 4060 technikailag valóban gyorsabb a 3060-nál, kb. 10-15%-kal. A PCIE x8 sebesség kapcsán a lamentálás ebből a szempontból butaság. Persze lehet olyan felhasználási terület, ahol folyamatosan nagy mennyiségű adat mozgatása szükséges a RAM és a videokártya memóriája között, de ez biztosan nem a videojátékok világa.

Miért lehet akkor csak minimális, csak pár képkocka/mp különbség a renderelésben a videojátékokban, ha ennél gyorsabb a 4060 ? Ennek több oka lehet, a legvalószínűbb szerintem az, hogy egyrészt a meglévő videojátékok nem a legújabb videokártya generációk képességeinek a kihasználását tartalmazzák, másrészt pedig az, hogy a játékokat nem egy-egy konkrét kártyára optimalizálják.

Remélem tudtam segíteni minden érdeklődőnek ezzel a pár gondolattal!


KAPCSOLAT

E-mail:
feher.konyvek@gmail.com
KAPCSOLAT

E-mail:
feher.konyvek@gmail.com
Vissza a tartalomhoz