kutatÁsok informatikai tÁmogatÁsa dr. szénási...
TRANSCRIPT
KUTATÁSOK INFORMATIKAI TÁMOGATÁSA
Dr. Szénási Sándor
Óbudai Egyetem
Neumann János Informatikai Kar
Alkalmazott Informatikai Intézet
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Alapvető jellemzői
2560 végrehajtó egység
8.22 TFlops
NVIDIA GTX 1080
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Alapvető jellemzői
6000 pentium processzor
2.3 TFlops
Intel ASCI Red (2000 Top 1)
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Alapvető jellemzői
8192 IBM Power3 processzor
12.2 TFlops
Intel ASCI White (2001-2002 Top1)
Történeti áttekintés
GPU programozás sajátosságai
Gyakorlati alkalmazások
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A videokártya a számítógép megjelenítésért felelős
alkotórésze
Egyidős a PC-k megjelenésével
Alaplapra integrált változatok
Különálló bővítőkártya változatok
Fejlesztések
Csatolók fejlesztése
Felbontás növelése
Színmélység növelése
Frissítési frekvencia növelése
Grafikus kártya
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
90-es évektől kezdve általánossá vált a 3D
megjelenítés
Játékokban
Grafikai programokban
Tervező programokban
Stb.
Erre több lehetséges algoritmus is ismert
Sugárkövetés
Raszterizálás
A gyakorlatban főleg ez utóbbi terjedt el
3D megjelenítés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Egy hálóval írja le a felületet, ami tipikusan
háromszögekből áll
Megfelelően sűrű háló esetén az eredmény már
tökéletes
További műveletek
Z távolság megállapítása
Árnyékolás
Textúrázás
Előnye
Gyorsan végrehajtható
Jól párhuzamosítható
Raszterizálás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Alapvető lépések
Háromszögek pontjainak leképezése a képernyő síkjába
Bemenet: modell pontjai (x, y, z koordináták), kamera helyzete
Kimenet: pontok x, y koordinátái
Egyszerű transzformáció
A képernyő síkjában lévő háromszögek kirajzolása
Bemenet: a háromszögek pontjainak x, y koordinátái
Kiegészítés: szín, textúra, fényhatások
Kimenet: a képernyőre kirajzolt háromszög
További műveletek
Effektek
Élsimítás
3D megjelenítés lépései
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
90-es évek közepén nyilvánvalóvá vált, hogy
A 3D megjelenítés egyre több helyen megjelent
Szinte korlátlanul erőforrásigényes
(gyorsabb eszköz → nagyobb hálósűrűség → szebb kép)
Az alaplépései azonosak az alkalmazástól függetlenül
Grafikai megjelenítésre speciális API-k
DirectX
OpenGL
Fentiek miatt célszerű hardveres megoldást keresni
Különálló 3D gyorsítókártyák
Grafikus kártyákba integrált megoldások
GPU szerepe a 3D megjelenítésben
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Alapvető shader típusok
Vertex shader
Feladata a 3D modell pontjainak leképezése a 2D síkba
Alapvetően lebegőpontos számokkal dolgozik
Pixel shader
Feladata a 2D koordináták által megadott háromszögek kirajzolása
Alapvetően színekkel dolgozik
Geometria shader
Feladata a geometria futásközbeni változtatása
Használata csak később jelent meg
Különböző hardver elemek valósították meg
Párhuzamosítás → shaderek számának növelése
Shaderek
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2007 - NVIDIA GT8800
112 végrehajtó egység
Több shader megjelenése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2008 - NVIDIA GTX 280
240 végrehajtó egység
Még több shader megjelenése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2010 - NVIDIA GTX 580
512 végrehajtó egység
És még több shader megjelenése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2012 - NVIDIA GTX 680
1536 végrehajtó egység
Annál is több shader megjelenése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2014 - NVIDIA GTX 980
2048 végrehajtó egység
Még annál is több shader
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
2016 - NVIDIA GTX 1080
2560 végrehajtó egység
Sok shader megjelenése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A megvalósítás során problémát okoz a megfelelő
arányok eltalálása
Összetett árnyékolást használó képek
Kevés vertex shader
Sok pixel shader
Bonyolult geometriát használó programok
Sok vertex shader
Kevés pixel shader
Megadott költség mellett nehéz olyan kártyát
készíteni, ami minden célra tökéletesen alkalmas
Shaderek elosztása
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Megoldás: megpróbálták közelíteni egymáshoz az
egymástól eltérő részegységek felépítését
Ez több éven keresztül történt meg
Shader Model 1.x
Shader Model 2.x
Shader Model 3.x
Unified Shader Model
Végeredményként a közelítés elérte a végső célt, és a
grafikus kártyákra már csak egy fajta, általános célú
végrehajtó elemekek kerültek
Shader generációk
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A grafikus kártyák lehetővé tették a shaderek direkt
programozását
Ezt alapvetően grafikai funkciókra szánták, de
lehetőség nyílt általános célú programok futtatására
is (2001 – mátrix szorzás megvalósítása)
Kezdetben ez csak a grafikai funkciókon keresztül,
meglehetősen nehézkesen működött. Ez neveztük
GPGPU programozásnak (General Purpose
Graphical Processing Unit)
A Unified Shader model még vonzóbbá tette ezt a
lehetőséget
GPGPU programozás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A grafikus kártya gyártók is felismerték az ebben
rejlő piaci lehetőséget
Ezért támogatást nyújtottak a saját kártyáikhoz
NVIDIA CUDA 1.0 – 2007
AMD/ATI CTM – 2007
Mivel ezek eltérő nyelvek, készült egy szabány is
OpenCL 1.0 – 2009
Ezt követően egyre többen foglalkoztak a témával
Egyetemek
Kutatóintézetek
Nagyvállalatok
GPU programozás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Fejlesztői környezetek tovább fejlődtek
NVIDIA CUDA 8.0 - 2016
OpenCL 2.1 – 2015
AMD/ATI már nem fejleszt külön rendszert
A GPU fejlesztés
Stabil alapokon áll
Elterjedt
Jó alternatíva
További hiányosságok
Elméleti háttér hiányosságok
Eszközök fejletlenek
Napjainkban
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Aktuális teljesítmény
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Gyakorlati alkalmazások
Történeti áttekintés
GPU programozás sajátosságai
Gyakorlati alkalmazások
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Előnyök
Sok végrehajtó egység
Gyors memória
Gyors adatátvitel
Hátrányok
A végrehajtó egységek lassabbak
A végrehajtó egységek egyszerűbbek
A végrehajtó egységek nem függetlenek
A grafikus kártya saját memóriájában dolgozik
Biztos hogy gyors? → a feladattól függ
Miért ilyen gyors a GPU?
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Magok: CPU-n kevés, GPU-n sok
Gyorsítótár: CPU-n sok, GPU-n kevés
Vezérlés: CPU-n összetett, GPU-n egyszerű
Függetlenség: CPU magok igen, GPU magok nem
Felépítés különbsége
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Memória késleltetés alatt értjük azt az időt, amíg a
processzornak várakoznia kell a memóriából kért
adatokra
Csökkenteni nem, csak elrejteni tudjuk
CPU esetén a módszerek a csökkentésre
Összetett végrehajtás
Utasítás futószalag
Spekulatív végrehajtás
Elágazás becslés
Gyorsítótár használata
Az egyszer már beolvasott adatot ne kelljen újra megvárni
Memória késleltetés CPU-n
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A probléma ugyanaz, de a megoldás egészen más
GPU esetén a módszerek a csökkentésre
Gyors kontextusváltás
Nagy mennyiségű szál futtatása
Minimális gyorsítótár
A GPU a memória késleltetést úgy próbálja meg
elrejteni, hogy egy memóriából való olvasás után a
várakozás helyett azonnal elkezd egy másik,
aktuálisan futtatható szálat végrehajtani
Így nem kell gyorsítótár és bonyolult vezérlés
Memória késleltetés GPU-n
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A vezérlés egyszerűsítése érdekében több ALU-hoz
tartozik egy vezérlő egység
Ezek összekötve egyidőben csak ugyanazt a
műveletet tudják végrehajtani
Viszont arra van mód,
hogy ezt különböző
adatokon végezzék el
Emiatt az összes szál
célszerűen ugyanazt a
kódot kell, hogy futtassa
Egyszerű végrehajtóegységek
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Elágazások esetén meg kell oldani azt, hogy az
összekapcsolt szálak feltételtől függően más kódot
futtassanak
Erre szolgál a SIMT technika
Ez a feltételtől
függően bizonyos
egységeket
lekapcsolhat
Az ilyen elágazás
végrehajtása nem
hatékony emiatt
SIMT végrehajtás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
GPU memória felépítésének jellemzői
CPU központi memóriától független
Összetett hierarchia, optimalizálás főként kézzel történik
Másolási műveletek költségesek
Memória hierarchia
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Egyszerű skálázhatóság
Független végrehajtás
On-chip, off-chip memória
Multiprocesszorok
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
GPU előnyei
Kiemelkedő elméleti csúcsteljesítmény
Ideális teljesítmény/költség arány
Jól skálázható
Dinamikusan fejlődő terület
GPU előnyei akkor használhatók ki, ha
Nagy mennyiségű szálat kell indítani
Ezek lehetőleg mind ugyanazt az algoritmust futtatják
Kellően magas a számítás/memóriahozzáférés arány
Egyéb szempontok
Összefoglalva
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A szöveg amiben keresünk (29 karakter)
A szó amit keresünk (6 karakter)
CPU megvalósítás 1 szálon
Az eredeti szöveg minden karakteréből indítsunk egy
keresést (24 vizsgálandó indulópont)
Hasonlítsuk össze az ott lévő betűket a keresendő szó
betűivel (1 és 6 lépés között)
Értékelés
Legjobb esetben műveletek száma: 6
Legrosszabb esetben műveletek száma: 24×6=144
Szöveg keresés – CPU 1
E z e g y h o s s z ú s z ö v e g e s t e s z t !
s z ö v e g
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A szöveg amiben keresünk (29 karakter)
A szó amit keresünk (6 karakter)
CPU megvalósítás 4 magos CPU-val
Az eredeti szöveget összuk szét a 4 mag között
CPU1: 1..6, CPU2: 7..12, CPU3: 13..18, CPU4: 19..24
A 6 hosszú szövegek feldolgozása azonos, mint az előbb
Értékelés
Műveletek száma: 24 – 144
Időszükséglet: 6 – 36
Szöveg keresés – CPU 2
s z ö v e g
E z e g y h o s s z ú s z ö v e g e s t e s z t !
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A szöveg amiben keresünk (29 karakter)
A szó amit keresünk (6 karakter)
GPU megvalósítás (több ezer végrehajtó egység)
Minden végrehajtó egység egy kiinduló pontot vizsgál
GPU1: 1, GPU2: 2, GPU3: 3, ... , GPU24: 24
Minden GPU szál csak egy szót ellenőriz
Értékelés
Műveletek száma: 24 – 144
Időszükséglet: 1 - 6
Szöveg keresés - GPU
s z ö v e g
E z e g y h o s s z ú s z ö v e g e s t e s z t !
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A szöveg amiben keresünk (29 karakter)
A szó amit keresünk (6 karakter)
GPU megvalósítás (több ezer végrehajtó egység)
Indítsunk 24×6 darab szálat
Minden szál csak egy karakter megfelelőségét ellenőrzi
Lépésszám
Műveletek száma: 144
Időszükséglet: 1
Szöveg keresés – GPU 2
s z ö v e g
E z e g y h o s s z ú s z ö v e g e s t e s z t !
Történeti áttekintés
GPU programozás sajátosságai
Gyakorlati alkalmazásokKépfeldolgozás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Main components
Sejtmag Mirigy Surface epithelium
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Előfeldolgozás
Wallis szűrő
Átlagoló szűrő
Kiinduló pont választás
Feltételezések
Lokálisan maximális
intenzitás
Még nem feldolgozott
Nem része egy már
létező régiónak
Régió növelés 1. lépés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Kontúr felépítése a
környező pixelek
alapján
Régió növelés 2. lépés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Jósági függvény
kiszámítása a kontúr
pontokra
Szín egyezőség
Körkörösség
Méret
Stb.
Régió növelés 3. lépés
8 5
5
4
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Régió kiterjesztése a
legjobb kontúrpont
irányába
Régió növelés 4. lépés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Előző lépések ismétlése
amíg egy megállási
feltétel be nem
következik
Nincs több szomszéd
Maximális méret
Másik sejtmagba
növelés
Régió növelés 3. lépés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A régió növelés
tipikusan nem jól
párhuzamosítható
feladat
Az egyes lépések az
előző lépések
eredményein alapulnak
Szekvenciális megoldás
Inicializálás
Jóság függvény
Régió növelés
Utófeldolgozás
Kilépési feltétel
Kontúr pontok felvétele
Szomszédság ellenőrzés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Az egész régiónövelő
algoritmus nem
párhuzamosítható
Az egyes rész lépések
azonban igen
Párhuzamosítható részek
Inicializálás
Jóság függvény
Régió növelés
Utófeldolgozás
Kilépési feltétel
Kontúr pontok felvétele
Szomszédság ellenőrzés
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Jóság függvény számítás
A jóság függvény néhány paramétere minden iterációban
változik (régió középpontja, áltagos színe, stb.)
Ezért minden iterációban, minden kontúrpont esetén újra
kell számolni
Számítás párhuzamosítása
Minden kontúrpontnál ugyanazt a számítást kell elvégezni,
csak más adatokkal
Ez tipikusan jól párhuzamosítható feladat
Jóság függvény számítása
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
1 GPU szál mindig 1
kontúrpont jóságát
számolja ki
1 GPU blokk egy
sejtmaggal dolgozik
A szükséges szálak
száma egyenlő a kontúr
méretével
Ez 4 - ~1000 közötti
érték lehet
Párhuzamos jóság számítás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Szomszédok vizsgálata
Egy új pont felvétele
után meg kell vizsgálni,
hogy merre bővíthető a
kontúr
Utófeldolgozás
Külső- és belső kontúr
megállapítása
Egyéb konvolúciók
Kiinduló pontok
keresése
További párhuzamosítható részek
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Egy sejtmag esetében a
végrehajtási idő közel
azonos a CPU-n mért
értékkel
Ez azonban még nem
használja ki a kártya
erőforrásait, így további
párhuzamosításra van
szükség
Végrehajtási idő
Regio grow execution time on CPU
Regio grow execution time on GPU
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Ismert a sejtmag
legnagyobb mérete
(sugara)
Megfelelő távolságból
indított keresések (ahol
táv > 4*maxR)
egymástól függetlenek
Tehát egyidőben,
párhuzamosan is
indíthatók
Párhuzamosság magasabb szintje
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Egyidőben keresett sejtmagok száma
Amennyiben a bemeneti kép azt megengedi, számos
sejtmagot lehet feldolgozni egy időben
Ez jelentősen növeli a processzor kihasználtságát
Párhuzamosan futó régiónövelések
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Teljes futásidő
A gyakorlatban a teljes
kép feldolgozási idő a
mérvadó
Ebben a GPU általában
3-4x gyorsabb, mint a
CPU implementáció
Kép felbontás
Nagyobb felbontások
esetében az eredmények
még jobbak
Teljes végrehajtási idő
Entire execution time in case of 80962 images
Entire execution time by image resolution
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Teljes kép felosztása átfedő részekre
Több régiónövelés
indítása
Eredmények
összefésülése
Eredmény
kb. 8x gyorsabb
mint az eredeti
módszer
Több grafikus kártya használata
Történeti áttekintés
GPU programozás sajátosságai
Gyakorlati alkalmazásokIHCP
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Hőátadás
Hőátadási tényező
Valódi alkalmazás
3D
Hőkezelési eljárások
Hőátadás
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Hőátadási együttható függ időtől/helytől
Háttér
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Hővezetés Fourier-egyenlete
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
HTC → Lehülési görbe
0
200
400
600
800
1000
1200
1400
1600
1800
0 5 10 15 20
0
100
200
300
400
500
600
700
800
900
0 2 4 6 8 10 12 14 16 18 20
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Lehülési görbe → HTC
0
200
400
600
800
1000
1200
1400
1600
1800
0 5 10 15 20
0
100
200
300
400
500
600
700
800
900
0 2 4 6 8 10 12 14 16 18 20
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Lehülés valóságban
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
HTC valóságban
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Megoldandó feladat
0.000
100.000
200.000
300.000
400.000
500.000
600.000
700.000
800.000
900.000
1000.000
0 2 4 6 8 10 12 14 16 18 20
0
200
400
600
800
1000
1200
1400
1600
1800
0 5 10 15 20 25 30
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A meglévő módszerek számításigényesek
Végeselem analízis
Véges differenciák módszere
Hőátadás mértéke
Közvetlenül nem mérhető
Inverz hőtani modellek segítségével származtatható
Inverz hőátadási folyamat
Rosszul feltett matematikai probléma
Nem lineáris
Nincs közvetlen megoldása
Heurisztikus módszerek
Problémák
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
1995, James Kennedy, Russell C. Eberhart
Madár és hal rajok mozgásán alapul
Particle Swarm Optimization
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Minden egyednek van
Saját térbeli helyzete
Aktuális sebessége (vektor)
A sebességet befolyásolja
Eddig talált legjobb saját pozíció
A teljes raj által eddig talált legjobb pozíció
A mi esetünkben
Egyed: egy vizsgált paraméterkészlet
Pozíció: HTC paraméterek
Jóság: referencia lehülési görbék közelítése
Cél: minél közelebbi görbét generáló HTC megtalálása
PSO felépítése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
PSO lépései
Induló pozíciók generálása
Jósági függvények számítása
Legjobb adatok kiválasztása
Új sebesség meghatározása
Mozgatás
Megállási
feltétel
vizsgálata
Start
Stop
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Előnyök
A módszer ideális nagyméretű paramétertérben való
keresésre
Hatékonyabban kerüli el a lokális optimumokat, mint a
hasonló módszerek
Problémák
Nagyszámú részecske minden iterációjában ki kell
számolni a lehülési görbét (kb. 15ms/részecske)
Ezért egy teljes szimuláció futásideje:
3000 elem/iteráció * 4000 iteráció * 15 ms/elem =
50 óra
IHCP megoldása PSO-val
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Véges differencia módszer
10x40 rács
4000 időegység
Egy GPU multiprocesszor = 1 lehűlés
400 szál
400 érték a belső memóriában
Az egyes lehűlések egymástól függetlenek
Minden multiprocesszor dolgozhat
GPU teljesítménye kiaknázható
Lehűlés szimuláció GPU-val
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
CPU-GPU megoldás összehasonlítása
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Általános GPU optimalizálási ötletek
Shared memória használata
Warp divergencia kiküszöbölése
CPU-GPU együttműködés elősegítése
Memória mozgatások csökkentése
Shared memória használata
A mátrix és a szükséges segédadatok elférnek az on-chip
memóriában
Ezért minden számítás ott elvégezhető
Memória késleltetés emiatt minimális
Optimalizációs lépések
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A grafikus kártya 32-es csoportokba rendezve
futtatja a szálakat
Ezek egyidőben mindig ugyanazt a feladatot hajtják
végre
Elágazás esetén a szálak egy részének várakoznia
kell (lásd SIMT végrehajtás)
Lehetőségek
Elágazások kiküszöbölése (általában nem megoldható)
Szálak átcsoportosítása (divergencia csökkentése)
Warp divergencia
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
A testet reprezentáló mátrix bizonyos pontjainál más-
más képlettel kell számolni
Warp divergencia DHCP
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Mátrix méret: 10x34
Csak utolsó warp divergens
Warp divergencia megoldása
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Optimalizált megoldás futásideje
Optimalizáció eredménye
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Ideális terheléseloszlás
CPU-GPU együtt
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
CPU-GPU memóriák közötti másolás költséges
Egymásra épülő lépések
CPU → GPU másolás
GPU kernel futtatás
GPU → CPU másolás
Memória másolások problémája
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
GPU három végrehajtó egysége: 2 másoló, 1 futtató
Ezek párhuzamosan működnek, így a memória
másolás ideje részben elrejthető
Memória másolások átfedése
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Végrehajtási idő: 50 óra 27 perc
Eredmény
GPU
1G
PU
2
CPU
, core
1
CPU
, core
2
CPU
, core
3
CPU
, core
4
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Gyakorlati alkalmazás
PSO/GA configurálás
Kérdéses paraméterek
Ideális populáció méret
Ideális módszerek
Időszükséglet
Paraméterenként 500-1000 teszt
CPU: 3,5 év → GPU: 2 hét
Egyéb heurisztikák kipróbálása
Fireworks
Ant colony optimization
További lehetőségek
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Populáció méret kísérlet
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
https://en.wikipedia.org/wiki/Ray_tracing_(graphics)
http://www.cmap.polytechnique.fr/~peyre/geodesic_computations/
http://graphics.stanford.edu/~henrik/images/imgs/bunny.jpg
http://images.bit-tech.net/content_images/2014/02/nvidia-geforce-gtx-titan-black-
review/zotactb-2b.jpg
http://www.top500.org/featured/systems/asci-red-sandia-national-laboratory/
http://www.pcper.com/reviews/Graphics-Cards/NVIDIA-GeForce-8800-GTX-
Review-DX10-and-Unified-Architecture/G80-Architecture
https://docs.nvidia.com/cuda/cuda-c-programming-guide/
http://www.nvidia.com/object/cuda_home_new.html
https://en.wikipedia.org/wiki/Swarm_behaviour
http://i.imgur.com/YPSKk.png
https://upload.wikimedia.org/wikipedia/commons/f/fb/Dolphin_triangle_mesh.png
http://web.eecs.umich.edu/~sugih/courses/eecs487/f15/pa1/aatriangle.png
https://circecharacterworks.wordpress.com/2012/05/12/framing-object-beyond-
bounding-box-projection/
http://images.nvidia.com/pascal/img/gtx1080/GeForce_GTX_1080_3qtr_Front_Le
ft.png
Irodalomjegyzék/képek forrásai
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Köszönetnyilvánítás
AZ EMBERI ERŐFORRÁSOK MINISZTÉRIUMA
ÚNKP-16-4/III. KÓDSZÁMÚ ÚJ NEMZETI KIVÁLÓSÁG
PROGRAMJÁNAK TÁMOGATÁSÁVAL KÉSZÜLT
Mérnöki Látásmód az Informatikában – Kutatások Informatikai Támogatása 2016.11.15. Óbudai Egyetem
Köszönöm a figyelmet