Valasek Gábor
Kutató, Fejlesztő, Oktató
Gábor számítógépes grafikával és geometriai algoritmusokkal foglalkozó kutató, fejlesztő és egyetemi oktató. Pályája során négy évig dolgozott az AAA játékfejlesztésben a Visual Concepts-nél az NBA 2K sorozaton, később pedig a Shapr3D-nél öt éven át rendering engineerként és engineering managerként vezetett rendering csapatokat olyan új platformokon is dolgozva, mint az Apple Vision Pro. Jelenleg az ELTE Informatikai Karán oktat és kutat, elsősorban a valós idejű grafika, a geometriai modellezés, a távolságmezők és a GPU-n futó robusztus geometriai algoritmusok körében. Munkájában azt keresi, hogyan lehet a matematikailag izgalmas ötletekből valóban gyors, használható és gyakorlatban is alkalmazható grafikai megoldásokat építeni.
Előadás: Shaderoptimalizálás a fordító után: AMD és NVIDIA ISA assembly a gyakorlatban
Az előadás azt mutatja be, hogy milyen formában hajtják végre a modern GPU-k a gondosan megírt shaderkódunkat. Ehhez a jelenlegi konzolgeneráció (PS5, XBOX Series X) alapját is adó AMD RDNA architektúrákat valamint a PC-s játékvilág jelenleg legelterjedtebb GPU-ját, az NVIDIA Ampere-generációs architektúráját vizsgáljuk. Áttekintjük ezen hardverek legfontosabb közös vonásait és eltérő tervezési döntéseit, majd az alacsony, úgynevezett ISA-szintű assembly segítségével követjük végig, hogyan fordulnak le a magas szintű shadernyelvek műveletei a GPU által ténylegesen végrehajtott elemi utasításokra. Az előadás célja nem az assembly programozás megtanítása, hanem egy pontosabb mentális modell kialakítása arról, hogy mi történik a shader forráskódja és a hardveren futó program között: hogyan jelenik meg a vektorizáció, az utasításválasztás, a regiszterhasználat, a memóriaelérés, a párhuzamos végrehajtás és a vezérlési divergencia. Ez a szemlélet segít felismerni azokat a teljesítményproblémákat, amelyek a forráskódból önmagukban nem feltétlenül láthatók, és megérteni, miért viselkedhet ugyanaz a shader eltérően AMD és NVIDIA hardveren. Végül arra is kitérünk, hogyan használható ez a tudás az AI-val támogatott programozás során: miként ellenőrizhető a generált kód valódi költsége, hogyan adhatók pontosabb optimalizálási szempontok a kódgeneráló eszközöknek, és hogyan választhatjuk el a meggyőzőnek tűnő módosításokat a ténylegesen mérhető gyorsulástól.