GPU akcelerace aplikací v METACentru

Transkript

GPU akcelerace aplikací v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
GPU akcelerace aplikacı́ v METACentru
Jiřı́ Filipovič
[email protected]
25. 11. 2013
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Proč GPU akcelerace?
GPU jsou výkonné masivně paralelnı́ procesory, ve srovnánı́ s CPU
nabı́zejı́ tisı́ce výpočetnı́ch jader, celkově řádově vyššı́
aritmetický výkon (jednotky TFlops)
vyššı́ přenosová kapacita pamětı́ (stovky GB/s)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Proč GPU akcelerace?
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Proč GPU akcelerace?
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Proč GPU akcelerace?
Výkon GPU lze využı́t v mnoha výpočetně náročných aplikacı́ch
mnoho aplikacı́ využı́vaných v METACentru umı́ GPU
akceleraci
v METACentru máme 3 clustery osazeny GPU
doom.metacentrum.cz
gram.zcu.cz
konos.fav.zcu.cz
V přednášce se zaměřı́m na obecné vysvetlenı́, co lze na GPU
akcelerovat a demonstruji GPU akceleraci u nejpoužı́vanějšı́ch
aplikacı́ v METACentru.
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Dostupná GPU
GeForce 465
2x v každém uzlu konos.fav.zcu.cz (celkem 9 uzlů)
architektura Fermi, 855 GFlops, 102,6 GB/s
hernı́ GPU, několik významných omezenı́
výkon v DP redukován na 1/8 výkonu SP
pamět’ 1 GB
nenı́ ECC, správa GPU, GPU Direct
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Dostupná GPU
Tesla M2090
4x v každém uzlu gram.zcu.cz (celkem 10 uzlů)
architektura Fermi, 1332 GFlops, 177 GB/s
výpočetnı́ GPU
výkon v DP redukován na 1/2 výkonu SP
pamět’ 6 GB
ECC (volitelně), správa GPU, GPU Direct
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Dostupná GPU
Tesla K20M
2x v každém uzlu doom.metacentrum.cz (celkem 30 uzlů)
architektura Kepler, 3.52 TFlops, 208 GB/s
výpočetnı́ GPU
výkon v DP redukován na 1/3 výkonu SP
pamět’ 5 GB
ECC (volitelně), správa GPU, GPU Direct
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Jak s GPU pracovat
Job si musı́ o GPU zažádat
např. pomocı́ -l nodes=1:gpu=4:ppn=16
specializované fronty (gpu, gpu long)
vidı́te jen ty GPU, které vám systém přidělil
Manuálnı́ nastavenı́ viditelnosti GPU
použı́vejte opatrně
bud’to lze zadat přı́mo spouštěné aplikaci, nebo pomocı́
proměnné CUDA VISIBLE DEVICES (seznam ID viditelných
GPU)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
V čem jsou GPU jiná?
Hlavnı́ rozdı́ly oproti CPU
masivně paralelnı́ procesor, GPU kód běžı́ v desı́tkách tisı́c
vláken
určité skupiny vláken běži v lock-step módu
koprocesor s vlastnı́ pamětı́, připojený přes PCI-E
pamět’ GPU relativně malá
Nynı́ se podı́váme na jejich důsledky...
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
V čem jsou GPU jiná?
Masivně paralelnı́ procesor
výpočetnı́ problém musı́ být dostatečně ,,velký”
násobenı́ matic 10 × 10 vs. 1000 × 1000
systém s 50 vs. systém s 100 000 atomy
výpočetnı́ problém musı́ jı́t dostatečně paralelizovat
velký systém vs. simulace dlouhého vývoje malého systému
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
V čem jsou GPU jiná?
Lock-step mód
skupiny vláken by měly následovat stejnou cestu v kódu a
přistupovat do spojitých pamět’ových oblastı́
efektivita GPU akcelerace horšı́ pro ,,nepravidelné” výpočty,
např.
husté vs. řı́dké matice
dlouhý (či žádný) vs. krátký cutoff u nevazebných sil
metoda konečných diferencı́ vs. metoda konečných prvků
graf s vrcholy stejného vs. různého stupně
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
V čem jsou GPU jiná?
Komunikace přes PCI-E
GPU má velmi rychlou pamět’, vstup a výstup je však třeba
přenášet po PCI-E sběrnici
má smysl akcelerovat jen takové algoritmy, které provedou
dostatek výpočtů na přenesená data
násobenı́ vs. sčı́tánı́ matic
nevazebné vs. vazebné sı́ly
problém může být zesı́len v přı́padě běhu na vı́ce GPU
citlivějšı́ než v přı́padě vı́ce CPU
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
V čem jsou GPU jiná?
Malá pamět’ GPU
velikost problému, který lze celý zpracovávat na GPU, je
relativně omezená
v přı́padě, že data odkládáme do CPU paměti, jsme omezeni
propustnostı́ PCI-E (viz předchozı́ slide)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Akcelerace Amber
Valká část funkcionality pmemd je akcelerována (nepodporovány
některá nastavenı́).
Simulovaný systém se musı́ vejı́t do GPU paměti
většı́ systémy musı́me počı́tat na CPU (v závislosti na
konfiguraci simulace a paměti GPU okolo 2M atomů)
neškáluje s počtem GPU
V METACentru v současné době nenı́ k dispozici kompilace pro
vı́ce GPU.
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Měřenı́ rychlosti
Standardnı́ testovacı́ balı́k Amberu
implicitnı́ solvent: TRPCage (304 atomů), myoglobin (2 492
atomů)
explicitnı́ solvent: Cellulose (NPT/NVE, 23 558 atomů),
FactorIX (NPT/NVE, 90 906 atomů), JAC (NPT/NVE, 408
609 atomů)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Zrychlenı́ oproti CPU*
10
doom
gram
8
6
4
2
0
TRPCage
myoglobin
JAC NPT
JAC NVE
FactorIX NPT FactorIX NVE Cellulose NPT Cellulose NVE
*zrychlenı́ měřeno oproti 2x 8-jádrovy Xeon 2.6GHz.
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Co jsme naměřili?
Pozorovánı́
u menšı́ch molekul dosáhneme vyššı́ho zrychlenı́ na M2090
(zřejmě souvisı́ s nedostatečnou saturacı́ K20M, implicitnı́
solvent může být lépe optimalizován pro Fermi)
u explicitnı́ho solventu Keper citelně rychlejšı́ (1.67 × −1.95×)
nemohli jsme změřit škálovánı́ na vı́ce GPU, ale dle autorů
Amberu nenı́ ideálnı́ (doporučujı́ běh vı́ce nezávislých instancı́)
Amber použı́vá téměř výhradně GPU
jednotlivé instance využı́vajı́cı́ rozdı́lná GPU se nespomalujı́
(nevzniká úzké hrdlo na straně výkonu CPU a propustnosti
PCI-E)
na clusteru gram můžeme tedy využı́t čtyřnásobek výkonu, na
clusteru doom dvojnásobek (+ stále máme volných vetšinu
CPU jader)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Akcelerace Gromacs
Valká část funkcionality je akcelerována (je třeba použı́vat Verlet
scheme).
Při spouštěnı́ je třeba
alespoň tolik MPI vláken, kolik chceme použı́t GPU
celkový počet vláken pomocı́ -nt, nebo -ntmpi a -ntomp pro
explicitnı́ nastavenı́ MPI a OpenMP vláken na MPI vlákno
použité GPU definujeme pomocı́ -gpu id XYZ (ID GPU pro
každé MPI vlákno)
přı́liš mnoho OpenMP vláken špatně škáluje (do 4 u AMD, do
8 u Intelu)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Laděnı́ vytı́ženı́ CPU a GPU
Akcelerovány jsou nevazebné sı́ly do cutoffu.
krátký cutoff vede k nevyužı́vánı́ plného potenciálu GPU
Gromacs automaticky nastavı́ většı́ cutoff a zpřesnı́ výpočet
dlouhý cutoff vede k nevyužitı́ CPU jader
můžeme ubrat CPU jádra
můžeme použı́t rychlejšı́ GPU
můžeme ubrat cutoff
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Měřenı́ rychlosti
Alkoholdehydrogenáza
ve vodě, celkem 97 602 atomů.
měřen výkon simulace v ns/den
RNáza ZF-1A
ve vodě, celkem 16 948 atomů.
měřen výkon simulace v ns/den
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
doom.metacentrum.cz, ADH
30
CPU
1x K20M
2x K20M
25
ns/day
20
15
10
5
0
5
10
Jiřı́ Filipovič[email protected]
15
CPU cores
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
gram.zcu.cz, ADH
35
CPU
1x M2090
2x M2090
3x M2090
4x M2090
30
ns/day
25
20
15
10
5
5
10
Jiřı́ Filipovič[email protected]
15
CPU cores
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
doom.metacentrum.cz, RNáza
140
CPU
1x K20M
2x K20M
120
100
ns/day
80
60
40
20
0
5
10
Jiřı́ Filipovič[email protected]
15
CPU cores
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
gram.zcu.cz, RNáza
160
CPU
1x M2090
2x M2090
3x M2090
4x M2090
140
120
ns/day
100
80
60
40
20
5
10
Jiřı́ Filipovič[email protected]
15
CPU cores
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Co jsme naměřili?
Pozorovánı́
škálovánı́ pro vı́ce GPU nenı́ ideálnı́
gram: pomalejšı́ GPU, vı́ce zvýšı́ výkon
doom: velmi slabé či záporné zvýšenı́ rychlosti
u většı́ instance by mohlo být lepšı́
i s použitı́m 1 GPU dokážeme dobře saturovat dostupná jádra
Kepler neposkytuje očekávané zvýšenı́ výkonu (1.39× ADH,
1.35 RNáza, běh s jednı́m GPU)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Akcelerace NAMD
Valká část funkcionality je akcelerována.
Při spouštěnı́ je třeba
nastavit outputEnergies na dostatečně vysokou hodnotu
(alespoň 100, lépe vı́ce)
nastavit parametr +idlepoll (aktivnı́ doptávánı́-se GPU na
výsledky)
nakonfigurovat počet GPU a CPU jader (parametry +p
+devices)
tı́m lze pomněrně výrazně ovlivnit výkon
pokud budete benchmarkovat, nechte při změně CPU jader
proběhnout jeden krátký běh mimo měřenı́ (autotuning)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Laděnı́ počtu CPU jader k počtu GPU
Obecně je doporučováno 1-2 GPU na 1 CPU socket.
V praxi
využı́vánı́ hyperthreadingu téměř nemá význam
přı́liš mnoho CPU jader na GPU může spomalit výpočet
škálovánı́ pro vı́ce GPU nenı́ ideálnı́
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Měřenı́ rychlosti
Apolipoprotein A1
ve vodě, celkem 92 224 atomů.
outputEnergies 500
měřen výkon v ns/den
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
doom.metacentrum.cz
5
CPU
1x K20M
2x K20M
4
ns/day
3
2
1
0
5
10
15
CPU cores
Jiřı́ Filipovič[email protected]
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
gram.zcu.cz
3.5
CPU
1x M2090
2x M2090
3x M2090
4x M2090
3
2.5
ns/day
2
1.5
1
0.5
0
5
10
Jiřı́ Filipovič[email protected]
15
CPU cores
20
25
30
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Co jsme naměřili?
Pozorovánı́
škálovánı́ pro vı́ce GPU nenı́ ideálnı́
gram: 1.41 × 1.57 × 1.65×
doom: 1.49×
u většı́ instance by mohlo být lepšı́
výpočtu stačı́ relativně málo CPU jader
pro výkonnějšı́ GPU je třeba vı́ce
vhodný počet CPU jader neroste úměrně počtu GPU
při běhu vı́ce nezávislých simulacı́ se vzájemně nespomalujı́
Kepler poskytuje citelné zvýšenı́ výkonu (1.71× běh s jednı́m
GPU)
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Co jsme naměřili?
Doporučenı́
nenı́ vždy nutné (ani žádoucı́) přiřazovat dostupným GPU
všechna dostupná CPU jádra
oddělené instance (pro každé GPU jedna, popř. jedna pro
zbytek CPU jader) přinášejı́ lepšı́ výkon, než jedna multi-GPU
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Matematický software
V METACentru je často použı́vaný software Matlab a Matematica
oba umı́ v omezené mı́ře využı́vat GPU
Mathematica má předdefinované funkce, lze pouštět
uživatelský CUDA kód
Matlab má GPU akceleraci v Parallel Computing Toolbox, lze
použı́vat dalšı́ toolboxy, předdefinované i uživatelské funkce
nestačı́ jen ,,spustit GPU verzi”, je nutné GPU aktivně
využı́vat
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Mathematica
Předdefinované funkce
práce se seznamy
filtrovánı́ obrazu
lineárnı́ algebra, FFT
In [ 1 ] : = Needs [ ”CUDALink ‘ ” ]
In [ 2 ] : = CUDASort [ Reverse@Range [ 1 0 ] ]
Out [ 2 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 }
Lze také explicitně zanechat v paměti GPU a tu vyzvednout až
jsou data potřeba.
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Matlab
Předdefinované funkce
spousta funkcı́ se použije transparentně
mnoho skalárnı́ch funkcı́, lze je aplikovat na elementy polı́
Explicitně řı́káme, co je v GPU paměti.
>> A = rand ( 1 0 2 4 ) ; gA = gpuArray ( A ) ;
>> tic , C = A ∗ A ; toc
Elapsed time is 0 . 0 7 5 3 9 6 seconds .
>> tic , gC = gA ∗ gA ; toc
Elapsed time is 0 . 0 0 8 6 2 1 seconds .
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru
Úvod
GPU akcelerace obecně
Amber
Gromacs
NAMD
Matematický software
Děkuji za pozornost.
Jiřı́ Filipovič[email protected]
GPU akcelerace aplikacı́ v METACentru

Podobné dokumenty

Ceník ke stažení zde.

Ceník ke stažení zde. ZDT spol. s r.o. Nové Veselí je přední český výrobce zemědělské a dopravní techniky s tradicí od roku 1954. Od roku 1993 se specializujeme na výrobu traktorových návěsů a nosičů nástaveb. Značka ZD...

Více

BIOS a nastaveni

BIOS a nastaveni BIOS obsahuje svůj SETUP, což je program umožňující měnit základní nastavení BIOSu a provádět jeho ladění. SETUP se vyvolává stisknutím patřičné klávesy (zpravidla DEL, F2) při bootování počítače a...

Více

matlab - MetaCentrum VO

matlab - MetaCentrum VO www.mathworks.com/help/distcomp/run-mex-functions-containing-cuda-code

Více

Mol.mod.

Mol.mod. Nedostatek výpočetní síly: Pro výpočet dlouhodosahových elektrostatických interakcí je užíván cutoff - useknutí interakcí - nestabilita. Neužívá se PME (známo od r. 1993)

Více

Císelné soustavy v mikroprocesorové technice

Císelné soustavy v mikroprocesorové technice v přı́padě, že výsledek aritmetické operace je následně operandem dalšı́ operace, je nutné data upravit do původnı́ho počtu bitů, následné snı́ženı́ počtu bitů je nutné také v pr...

Více

Výhledy v telekomunikační technici v nfrastruktuře SŽDC

Výhledy v telekomunikační technici v nfrastruktuře SŽDC Umožňuje připojit nové VoIP účastníky a trunky, ale současně zachovat i připojení stávajících periferií – analogových a digitálních účastníků a trunků

Více

Test Aptima HPV

Test Aptima HPV Cervikální vzorky pro Pap test odebrané do lahviček ThinPrep™ obsahujících roztok PreservCyt™ lze analyzovat pomocí testu Aptima HPV před zpracováním Pap i po něm, což platí i pro cervikální vzorky...

Více