skaičiavimų spartinimas panaudojus grafinį procesorių directcompute technologijos pagalba
DESCRIPTION
Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba. Atlik o PSI IFM-9/2 gr . magistrantai : Serg ejus Topolovas Algis Pavasaris. Tikslai. - PowerPoint PPT PresentationTRANSCRIPT
Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba
Atliko PSI IFM-9/2 gr. magistrantai: Sergejus Topolovas
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ą.
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
2
Terminologija
• GPGPU (General-Purpose computing on Graphics Processing Units)
• DirectCompute
• DirectX11
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
3
Metodai
• A* kelio paieška (pathfinding) [1]
• Hierarchinis uždengtos geometrijos atmetimas (occlusion culling) [2]
• MD5 maišos kodo nulaužimas grubios jėgos metodu (brute-force attack) [3]
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
4
Tyrimo metu naudota įranga
• CPU: Intel Core2 Duo E8400 @3.2 GHz.
• RAM: Kingston HyperX DDR2 4 GB @854 MHz.
• GPU: Gigabyte 450 GTS OC2.
• OS: Microsoft Windows 7 x64.
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
5
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“)
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
6
Metodai: A* kelio paieška (rezultatai)
A* kelio paieškos algoritmo versijų vykdymo laikų palyginimas
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
7
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“)
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
8
Metodai: Hierarchinis uždengtos geometrijos atmetimas (rezultatai)
Hierarchinio uždengtos geometrijos atmetimo algoritmo versijų vykdymo laikų palyginimas
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
9
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“)
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
10
Metodai: MD5 maišos kodo nulaužimas (rezultatai)
Simbolių radimo iš maišos funkcijos vykdymo laikų palyginimas
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
11
Metodai: MD5 maišos kodo nulaužimas (rezultatai)
Pilno simbolių perrinkimo vykdymo laikų palyginimas
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
12
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“
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
13
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.
2011.04.22 S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių
14