HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

GPU Day

2018.07.19. 19:44 Travis.CG

Azt hiszem a Wigner Jenő Kutató Központ álltal szervezett GPU nap egy olyan esemény, amit minden szempontból meg kellett látogatnom. Sajnos csak az első nap vehettem részt rajta, de nem bántam meg. Mint az várható volt, a demoscene is képviseltette magát Blala személyében.

Bevallom, nem én voltam a célközönség. Az előadások egyes részei érthetetlenek voltak számomra, hiszen én ilyen mélységeiben nem foglalkozom a számítógép tudománnyal, de talán nem teljesen felesleges egy kívülálló beszámolója.

Először egy FPGA-t mutattak, amit C#-ban programoztak. A rendszer érdekessége, hogy egy új típusú számábrázolást vezettek be, ami kedvezőbb tulajdonságokkal rendelkezik. Nevezetesen a Type I unum. Érdekessége, hogy nem fix bájt hosszúságon tárolja a lebegőpontos számokat, hanem változó hosszúságon. Ez azt jelenti, hogy ha csak egész számokat kell tárolni, nem pazarol helyet a tört résznek. A pontosság is változtatható, annak függvényében, hogy mekkora precizitásra van szükség.

Egy előadás keretében a kvantum számítógépekről is adtak egy áttekintést. Ebből leginkább az maradt meg, hogy ez jelenleg inkább egy játék, mint munkaeszköz. Egy GPU-n futó emuláció majdnem gyorsabb, mint egy valódi kvantum számítógép.

Betekintést nyertünk a C++ Standard könyvtár párhuzamosított verzióiba. Szép, gyors, de a bemutatott példakód kegyetlenül ronda volt. Értem én, hogy C++14, de lassan több lesz a nem alfanumerikus karakter a kódokban, mint betű. Ez egyáltalán nem az a C++, amit én annak idején tanultam. Alkottam is egy új elméletet: előbb-utóbb minden programozási nyelv a Brainfuckig fejlődik.

A következő három előadás összefüggött, a Pázmány Péter Katolikus Egyetemről jöttek az előadók. Először egy fordító programot mutattak be, ami egy magas szintű nyelvből különböző platformra optimalizált kódot tud előállítani. Ezt különböző egyenelt megoldó algoritmusok optimalizálására találták ki, hogy utána egy lépésben elkészüljön a kód Cuda, SIMD vagy OpenMP-re.

A második előadás arról szólt, milyen egyenleteket oldanak meg az előbb bemutatott módszerrel. Kitaláltak egy új algoritmust, amivel hatékonyabban lehet a strukturálatlan hálókon alapuló egyenleteket megoldani. A strukturálatlan hálókat különböző szimulációk esetén használják a tér felbontására. Ahol a háló sűrűbb, ott a szimuláció részletesebben fut le, mint ahol tág. Az előadás során például a repülőgép szárny profilokra ható erők hatásait mutatták, mint példa alkalmazást.

A harmadik előadás egy olyan optimalizációs eljárásról szólt, amiben az egyenleteket a lineáris algebra műveleti elemeire bontják, majd egy permutációs módszerrel megkeresik azok legjobb kombinációját. A gyakorlatban a felcserélhető műveletek egyes esetekben jobban optimalizálhatóak, de ez mindig az adott számítógép architektúrától függ.

Demoscener szempontból a modern sugárkövetési módszerek bemutatása volt a legérdekesebb. Bemutatták az NVIDIA Optix-ot, Radeon Rays-t és a Baikalt. Természetesen a Microsoft új DirectX API-ja sem maradhatott ki. Aki nem rendelkezik nagy teljesítményű grafikus kártyával, az Intel által fejlesztett Embree-vel tehet próbát.

Megismerkedhettünk a fotogrammetria tudományával is, habár csak felületesen. Az előadás azt mutatta be, hogy a bonyolult, zárt kódú alkalmazások helyett hogyan lehet egy funkcionális alapokra helyezett programozási nyelvet készíteni, amivel magas szinten lehet a szükséges lépéseket megvalósítani.

A következő három előadás szintén összefüggött. Három előadáson keresztül mutatták be, hogyan álltak át egy C++-os, nehezen fejleszthető grafikus rendszerről egy F#-ba átírt funkcionális engine-re. Számomra már az is hihetetlen volt, hogy megtették ezt a lépést. A legtöbb cég inkább hegesztené az elavult motort, amíg szét nem esik vagy a fejlesztők rituális öngyilkosságot követnek el.

A rendszer előnye, hogy könnyebben fejleszthető, egyszerűbb a hibakeresés. A performancia alacsonyabb, és a rendszer felhasználóit is át kell képezni, de összességében úgy gondolják, megérte. A rendszer nyílt, bárki megnézheti. A legérdekesebb a shaderek megvalósítása, ami szintén F#-ban írtak és abból fordul az OpenGL saját shader nyelvére.

Láthattunk egy másik előadást, amiben egy épület fény térképét készítették el. Egészen pontosan egy régi kastély sötét zugait kellett megkeresni. Első lépésként drónnal körberepülték a környéket és minden szögből lefotózták a kastélyt. A Reality Capture programmal elkészítették a 3D modellt tesztúrákkal együtt. A Nap helyzetét letöltötték a sunearthtools.com-ról, majd minden napszakra legenerálták az árnyék textúrát (shadow map). Ha az adott hely fényt kapott, eggyel növelték ott az értéket. Gyakorlatilag a kastély textúráját heatmapnak használták. Ahova kevés napfény jut, ott a textúra alacsony értékeket tartalmazott és magas volt ott, ami napfényben fürdött.

Egy másik előadás is a funkcionális programnyelvek grafikus motorként történő alkalmazásáról szólt. Amíg a korábbi előadásokban bemutatott Aardvarkot több fejlesztő, kb. másfél évig programozta, addig ezt a rendszert egy lelkes magyar szabadúszó megcsinálta otthon. Ő egy Haskell-szerű nyelvet készített. Még a Quake3-t is lefordította rá.

A nap utolsó előadása a Microsoft Hololens volt. A YouTube-on fellelhető összes reklám videót megnéztük. Ha kicsit gonosz akanék lenni (és miért ne tenném?), akkor azt mondanám, hogy a pocsék dokumentálás kiváltására találták ki.

Összességében jó kis nap volt, kár hogy másnapra, ahol tudományos eredményeket mutattak be, nem tudtam maradni.

Szólj hozzá!

Címkék: programozás opengl

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr3914105453

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása