Professional Documents
Culture Documents
Intel Xeon Phi
Intel Xeon Phi
SADRAJ
1.
UVOD......................................................................................................................................1
2.
1. UVOD
Kako potrebe za sve veom raunalnom moi rastu iz dana u dan razvile su se nove
arhitekture da zadovolje ove potrebe. Akceleratori poput GPU-a su jedan od naina da se to napravi
ali esto zahtjevaju popravljanje programskih kernela u specijaliziranim programskim modelima
kao to su CUDA(1) ili OpenCL(2). Za razliku od njih intelovi koprocesori pruaju standardne
programske modele koji su na raspolaganju intelovim arhitekturama kao na primjer OpenMP(3),
POSIX threads(4) ili MPI(5). Intel Xeon Phi koprocesori ukljuuju se na standardne PCIe slotove i
pruaju dobro poznatu, standardnu arhitekturu dijeljene memorije.
Novosti u Xeon Phi Arhitekturi odnose se na pet komponenti:
Vektorske jezgre
On-chip memorija
Off-chip memorija
Prstenasta povezanost
PCIe veza
Budui da su ovo glavna obiljeja koja Xeon Phi razlikuju od tipinog CPU-a - vektori su
iri, mnogo je vise jezgri, koherencija kea, djeljena memorija I prstenasta povezanost - ovo su
obiljeja Phi-a na koja e se ovaj rad fokusirati.
Intel Xeon Phi Coprocessor 3100 familija pogodna za zadatke sa visokom potrebom
2.1 ARHITEKTURA
Intel Xeon Phi sadri vise od 50 dvosmjerno povezanih jezgri na ploici (u ovom radu
detaljnije obraen model iz serije 5100 koji koristi 60 jezgri) i 16 memorijskih kanala I omoguuju
brzinu od 5.0 GT/s (gigatransfera). Ako je potreban kao akcelerator Phi se povezuje na host-a putem
PCI Expresa slino kao I GPU akceleratori, ali za razliku od njih koristi ugraen Linux OS
(verzija: 2.6.38.8). Slika 1 prikazuje arhitekturu Intel Xeon Phi procesora.
Svaka jezgra sadri 512 bit iroku vektorsku jedinicu (VPU) sa vektorskim registrima (32
registra po sadraju dretve), 32KB L1 podatkovnog kea i 32KB L1 instrukcijskog kea te 512 KB
privatnog jezgrenog unificiranog L2 kea. Ukupno, za 60 jezgri to je 30MB L2 kea na jednoj
ploici. L2 keevi hardverski se odravaju potpuno usklaenima I koriste DTD (distribuirane
oznake direktorija). Vano je primjetiti da direktorij oznaka nije centraliziran nego podijeljen na 64
DTD-a, gdje svaki dobiva jednak dio adresnog prostora I jednako je odgovoran za odravanje
globalne koherentnosti.
Jo jedna od posebnih znaajki Phi-a je brzo prstenasto dvosmjerno povezivanje gdje svi
povezani djelovi komuniciraju preko prstena, koristei posebne kontrolere nazvane ring stop da bi
ubacili zahtjeve I primili odgovore na prstenu.
Novosti u Xeon Phi Arhitekturi odnose se na pet komponenti:
Vektorske jezgre
On-chip memorija
Off-chip memorija
Prstenasta povezanost
PCIe veza
Budui da su ovo glavna obiljeja koja Xeon Phi razlikuju od tipinog CPU-a - vektori su
iri, mnogo je vise jezgri, koherencija kea, djeljena memorija I prstenasta povezanost ovo su
obiljeja Phi-a na koja e se ovaj rad fokusirati.
2.2 PROGRAMIRANJE
Za programere koji su navikli na jezike visoke razine, kao to su C/C++ ili Fortran,
koprocesor izgleda kao simetrini multiprocesor MPI na jednom ipu. U usporedbi sa
5
Throughput je broj operacija izvren u odreenom vremenu, kako vei throughput znai
bolje performance mjerenje je fokusirano na mjerenje maksimalnog mogueg throughput-a za
razliite operacije. Kod mjerenja maksimalnog throughput-a glavni izazov je stvoriti zahtjeve tako
da je resurs na kojem se radi mjerenje maksimalno iskoriten.
Vektorske jezgre
On-chip I off-chip memorija
Prstenasta povezanost
PCIe veza
Xeon Phi koristi 177 vektorskih operacija koje moemo podijeliti u pet kategorija:
Mask operacije
Aritmetiko-logike instrukcije
Instrukcije pretvorbe
Permutacijske instrukcije
Proirene maytematike instrukcije
OPERACIJA
kand, kor, knot, kxor
vaddpd, vfmaddpd,
KATEGORIJA
Mask operacija
Aritmetika operacija
LATENCIJA
2
4
vmulpd,vsubpd
Vcvtdq2pd, vcvtps2pd
Operacije pretvaranja
Vpermd, vpermf32x4
Permutacijska operacija
Vexp223ps, vlog2ps,vrsqrt23ps
Proirena matematika operacija
Tabela 1: instrukcijska latencija kod Xeon Phi-a
5
6
6
Intel Xeon Phi processor 5100 ima 60 jezgri koje rade na 1.05 GHz I svaka od njih moe
obraditi 8 double-precision elemenata u trenutku sa maksimumom od dvije operacija (multiply-add
odnosno mad) u svakom traku (na primjer vektorskom elementu). Prema tome teoretski je mogue
postii throughput od 1008 GFlops. Ali jesu li performance od 1 TFlopa mogue? Rezultati
mjerenja throughputa prikazani su na grafu 1.
Za mjerenje throughput pokrenute su 1,2,4 dretve po jezgri (60, 120 I 240 dretvi), tijekom mjerenja
svaka dretva obavlja jedan ili dva instrukcijska toka za fiksni broj iteracija:
bi +1=bi op a
gdje je
8
i iteracija, a konstanta a b operand i rezultat. Kao to se moe vidjeti u grafu maksimum throughput
moe se postii pri upotrebi 240 dretvi I multiply-add operacije. Jo moemo primjetiti da je
throughput zapravo jako nizak kod pozivanja 1 dretve po jezgri, zato bi programeri trebali koristiti
barem dvije dretve po jezgri Xeon phi-a da bi u potpunosti iskoristili hardverske resurse procesora.
Da bi se postigao visoki throughput kod koritenja jedne operacije po toku, potrebno je pozvati
barem 4 dretve po jezgri da bi se sakrila latencija koja je jako visoka kod aritmetikih operacija.
Moemo zakljuiti da za koriteni miks operacija throughput ovisi ne samo o broju jezgri i dretvi
nego i o irini (npr: broju nezavisnih instrukcijskih tokova).
write
Kao to moemo vidjeti maksimalna brzina prijenosa je puno nia od teoretskih 320 GB/s,
ali se brzina poveava za brojem dretvi, to se dogaa jer upotrebom vise dretvi aljemo vise
zahtjeva memorijskim kontrolerima. Ako ciljaju na bri prijenos podataka programeri trebaju
pokrenuti to vise dretvi da bi poplavili memorijske kanale I postigli maksimalnu brzinu itanja
od 164 GB/s (60 ili vise dretvi). S druge strane maksimalna brzina spremanja od 76 GB/S postie se
tek pri koritenju 240 dretvi. Xeon Phi podrava hardverski (HWP) i softverski (SWP) prefetching
9
a na grafu moemo vidjeti promjene u brzini pri razliitim konfiguracijama, a koritenje streaming
storea dodatno optimizira brzinu prijenosa pri spremanju podataka.
Moemo vidjeti da raspored jezgri na prstenu zapravo nema uinka na brzinu prijenosa podataka na
prstenu. Naime, jezgre na Xeo Phi-umoemo smatrati simetrinima i udaljenost meu njima nema
nikakvog uinka na postignute brzine prijenosa.
Poto svaka Xeon Phi jezgra podrava etiri hardverske dretve rezultat mjerenja brzine kada su sve
etiri dretve na istoj jezgri prikazan je na grafu 5.
10
Moemo primjetiti kada su dretve pokrenute na istoj jezgri brzina se stabilizira izmeu 4 i 5
GB/s i da se brzina poveava kada se dretve pokrenu na razliitim jezgrama. Moemo zakljuiti da
kada dretve pokrenute na istoj jezgri istovremeno trae podatke dolazi do natjecanja za zajedniki
resurs (npr. Ring stops) i dovodi do serijalizacije zahtjeva, ali s pozitivne strane dretve na istoj
jezgri djele ke i imaju bri pristup podatcima.
Prethodni odlomak obrauje brzine pristupa kada razliite dretve pristupaju razliitim
memorijskim lokacijama ali postavlja se pitanje to se dogaa kada razliite dretve pokuavaju
istovremeno pristupiti istoj memorijskoj lokaciji. Mogli bi oekivati da postignute brzine
odgovaraju brzinama pojedine dretve ali mjerenja pokazuju da se brzina smanjuje kako se broj
dretvi poveava do 24 a zatim stagnira na oko 1.5 do 2 GB/s to je zapravo samo treina brzine
prijenosa koju moe postii pojedina dretva. Prema tome moemo zakljuiti da se smanjenje
performansi javlja pri istovremenom pristupu DTD-ovima i da bi se iskoristile mogue brzine
prijenosa treba raditi palikacije u kojima veliki broj dretvi pristupa razliitim memorijskim
lokacijama.
11
Moemo primjetiti da brzina raste sa veliinom podataka i da je relativno stabilna, ali za zahtjeve
iznad 32 MB moemo vidjeti velike varijacije i naglim padom srednje brzine. Razlozi za ovakav
nagli pad brzine i ovako velike varijacije su nepoznati.
Jedna od prodajnih toki Phi procesora je mogunost koritenja programskih modela ve
napisanih za vise-jezgrene procesore ali za potpuno iskoritavanje hardverskih mogunosti Phi-a
prepravljanje koda i runa vektorizacija, koji unitavaju portabilnost koda, su obavezne. Ukratko,
oslanjati se na compiler i koristiti tradicionalne programske modele za postizanje visokih
performansi na Phi-u je jo uvijek nemogue.
12
4. ZAKLJUAK
Iz svega navedenog moemo zakljuiti da je intel Xeon Phi processor uistinu Highthroughput platforma, a maksimalni throughput je ostvariv ali ovisi o broju dretvi i dretvi po jezgri,
koritenju 512 bitnih vektora i tipu operacija. Xeon Phi koristi efektivan pristup memoriji ali
maksimalne realne brzine od 164 GB/s za itanje i 76 GB/s za spremanje podataka su daleko od
teoretskih 320 GB/s. Prstenasta povezanost kod Phi procesora dovodi do toga da sve jezgre
moemo smatrati simetrinim vrnjacima te njihova udaljenost nema nikakve veze sa brzinama
prijenosa.
5. LITERATURA
13
http://www.colfax-intl.com/nd/downloads/Xeon-Phi-Coprocessor-Datasheet.pdf
https://www.microway.com/download/datasheet/Intel_Xeon_Phi_Coprocessor_Family_Brief.pdf
http://www.cs.rpi.edu/~chrisc/COURSES/PARALLEL/SPRING-2013/papers/intel-phi.pdf
http://www.pds.ewi.tudelft.nl/fileadmin/pds/homepages/fang/papers/icpe2k14a22.pdf
14