160 likes | 349 Views
Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba. Atlik o PSI IFM-9/2 gr . magistrantai : Serg ejus Topolovas Algis Pavasaris. Tikslai.
E N D
Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba Atliko PSI IFM-9/2 gr. magistrantai: SergejusTopolovas Algis Pavasaris
Tikslai • Paspartinti su centriniu procesoriumi (toliau – CPU) atliekamus skaičiavimus atlikus juos grafinio procesoriaus (toliau – GPU) pagalba. • Skaičiavimų spartinimui panaudoti DirectCompute technologiją. • Ištirti GPU pagalba vykdomų skaičiavimų dėsningumus bei nustatyti faktorius, įtakojančius jų našumą. S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Terminologija • GPGPU (General-PurposecomputingonGraphicsProcessingUnits) • DirectCompute • DirectX11 S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai • A* kelio paieška (pathfinding) [1] • Hierarchinis uždengtos geometrijos atmetimas (occlusionculling) [2] • MD5 maišos kodo nulaužimas grubios jėgos metodu (brute-forceattack) [3] S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Tyrimo metu naudota įranga • CPU: Intel Core2 Duo E8400 @3.2 GHz. • RAM: KingstonHyperX DDR2 4 GB @854 MHz. • GPU: Gigabyte 450 GTS OC2. • OS: Microsoft Windows 7 x64. S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: A* kelio paieška • Tyrimo metodologija: • Paieška 64x64 viršūnių dydžio grafe ieškant kelio iš (0;0) į (63;63) viršūnę. • 4 algoritmo variantai: • CPU • GPU, taupant atminį („GPU v1“) • GPU, dalinai taupant atminį („GPU v2“) • GPU, netaupant atminties („GPU v3“) S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: A* kelio paieška (rezultatai) A* kelio paieškos algoritmo versijų vykdymo laikų palyginimas S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: Hierarchinis uždengtos geometrijos atmetimas • Tyrimo metodologija: • Aplinka su dideliais uždengiančiais objektais. • Yra objektų tiek nepapuolančių į vartotojui matomą zoną, tiek uždengtų dengiančiais objektais, tiek matomų vartotojui. • 3 algoritmo variantai: • CPU • GPU vykdo papuolimo į vartotojui matomą zoną tikrinimožingsnį (1) ir dengiamumo sąlygos patikrinimo žingsnį (2) („GPU v1“) • CPU atlieka (1), o GPU (2) žingsnį („GPU v2“) S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: Hierarchinis uždengtos geometrijos atmetimas (rezultatai) Hierarchinio uždengtos geometrijos atmetimo algoritmo versijų vykdymo laikų palyginimas S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: MD5 maišos kodo nulaužimas • Tyrimo metodologija: • Vertinamas tiek pilno perrinkimo, tiek rezultato radimo laikas. • Paieška vykdoma [a; z], [A; Z], [0; 9] aibėse • 5 algoritmo variantai: • CPU, su rekursija („CPU v1“) • CPU, be rekursijos („CPU v2“) • GPU („GPU v1“) • CPU (simbolių komb. generavimas) + GPU („GPU v2“) • Optimizuotas „GPU v2“ („GPU v3“) S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: MD5 maišos kodo nulaužimas (rezultatai) Simbolių radimo iš maišos funkcijos vykdymo laikų palyginimas S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Metodai: MD5 maišos kodo nulaužimas (rezultatai) Pilno simbolių perrinkimo vykdymo laikų palyginimas S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Rezultatų apibendrinimas • [1] (4096 užklausos): • „GPUv3“ algoritmas 3.52x greitesnis už CPU • CPU->GPU: 0.002% („GPUv1“ir„GPUv2“), 0.005% („GPUv3“) • CPU<-GPU: 7.52% („GPUv1“), 8.51%(„GPU v2“), 31.38% („GPUv3“) • Gijų grupės dydis yra labai svarbus! • [2]: • Jei vykdoma mažai skaičiavimų – juos geriau vykdyti su CPU, nebent užklausų kiekis labai didelis • [3] (pilnas perrinkimas, 5 simboliai): • „GPU v3“ algoritmas 7.81x greitesnis už „CPU v2“ S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Išvados • Mažai skaičiavimų atliekančių algoritmų vykdymas GPU pagalba naudingas tik vykdant didelį skaičiavimo užklausų kiekį. • Didelis GPU pagalba vykdomų algoritmų ciklomatinis sudėtingumas neigiamai įtakoja jų našumą. • Siekiant panaudoti GPU skaičiavimams atlikti, reikia įvertinti informacijos perkėlimo tarp CPU bei GPU atminties laikus. Būtent dėl to mažai skaičiavimų reikalaujantys veiksmai yra greičiau vykdomi CPU pagalba. • Gijų grupių dydis turi didelę įtaką GPU vykdomų algoritmų našumui. • Protingas GPU resursų panaudojimas kartu su CPU suteikia nemažą našumo prieaugį skaičiavimui imliose užduotyse. S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių
Ačiū už dėmesį S. Topolovas ir A. Pavasaris Skaičiavimų spartinimas panaudojus grafinį procesorių