15
Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba Atliko PSI IFM-9/2 gr. magistrantai: Sergejus Topolovas Algis Pavasaris

Skaičiavimų spartinimas panaudojus grafinį procesorių DirectCompute technologijos pagalba

  • Upload
    elma

  • View
    58

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

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

2011.04.22 15

Ačiū už dėmesį

S. Topolovas ir A. PavasarisSkaičiavimų spartinimas panaudojus grafinį procesorių