Vélemény: a CPU-ból GPU, míg a GPU-ból CPU lesz

Látványos változásokat a CPU-k és a GPU-k manapság nem mutatnak, de a cégek koncepciói már nagyrészt ismertek, és igen érdekes jövőkép bontakozik ki a továbbfejlesztés szempontjából. Bár a CPU-k és a GPU-k vizsgálatánál különválasztjuk a két irányvonalat, de nem lehet elmenni amellett szó nélkül, hogy bár a tervezési koncepciók még mindig különböznek, egyre több területen alakul ki hasonlóság.

Vincent Hindriksen, a Stream Computing elnök-vezérigazgatója és vezető programozója viccesnek találja a hardverek fejlődését. Elmondása szerint az AVX3.2-vel a processzorok karakterisztikája a GPU-kra fog hajazni, persze a grafikus részegységek nélkül. Mint ismeretes az AVX3.2 bevezeti az 512 bites vektoroperációkat, amelyekhez a hardverekben 512 bites vektormotor is lesz. Az AVX fejlődésével a processzorok átvették, illetve átveszik a GPU-k, illetve más adatpárhuzamos processzorok sajátosságát, aminek értelemben az új CPU-k is külön rendszert alkalmaznak a memória olvasására (gather) és írására (scatter).

Persze Vincent Hindriksen szerint az AVX3.2-vel továbbra is figyelni kell a vektorizálásra, így az új, modern processzorok programozása nagyjából olyan nehéz lesz, mint régebbi, nem éppen modern alapokra épülő GPU-ké, illetve a memória-sávszélesség is limitáló.

Megtudtuk, hogy a végfelhasználói programokban leginkább azért hiányzik az AVX utasításkészletek támogatása, mert sok esetben kevés lenne a kétcsatornás DDR3-as konfigurációk adatátviteli teljesítménye a 256 bites vagy szélesebb vektormagok kihasználására. Ráadásul a processzorok nem GPU-k, így nincsenek olyan memóriára vonatkozó limitációkat elfedő trükkök birtokukban, amelyekkel hatékonyabbá tehető a széles vektoroperációk betöltése és feldolgozása.

Az egészben az is vicces, hogy Vincent Hindriksen szerint nem csak a CPU-k kezdenek el GPU-kra hasonlítani, hanem fordítva is felfedezhető némi átfedés. A mai modern GPU-k multiprocesszorainak ütemezése egyre komplexebbé válik, amellyel egyre inkább hasonlítanak a modern processzorokra.

Érdekesség, hogy több programozó is csak a logikus fejlődést látja ebben. A CPU-k és a GPU-k eltérő problémákkal küzdenek, és az egyes gondokra úgy reagáltak a tervezők, hogy elkezdték egymás koncepcióit lemásolni. Például a komplex ütemezés a CPU-knál nem gond, így logikus feltételezni, hogy megfelelő implementáció mellett a GPU-kon is javít. Ugyanígy a CPU-knál az órajel nem növelhető, ahogy lassan az egy szálra levetített teljesítmény sem, viszont a mérnökök látják a GPU-kat, ezen belül is a hardverek kihasználását, és logikus döntés a vektormotorok szélesítésének irányába lépkedni.

A fentiek persze nem jelentik azt, hogy mindenben megegyeznek majd a CPU-k és a GPU-k, mivel bizonyos jellegzetességeik továbbra is megmaradnak, de láthatóan egyre inkább hasonlítanak egymásra. Ez egyébként a programozók számára is lényeges információ, hiszen tudniuk kell arról, hogy az ipar merre fejlődik, azaz milyen irányba kell elmozdulniuk ahhoz, hogy az új CPU-k és GPU-k képességeit kihasználják.

Vincent Hindriksen szerint egy ilyen jövőkép mellett felértékelődik az OpenCL, mivel ez a nyelv már fel van készítve a feladatpárhuzamos és adatpárhuzamos programozásra is, jó alapot biztosítva az újítások kihasználására.

Azóta történt

Előzmények

Hirdetés