SVEUILITE U MOSTARUFAKULTET PRIRODOSLOVNO MATEMATIKIH I ODGOJNIH
ZNANOSTISTUDIJ: INFORMATIKA
Intel Xeon Phi procesoriSeminarski rad
Kolegij: Paralelno programiranje Student: Ana VilaMentor: Sven
Gotovac Broj indeksa: 7649/I
Mostar, Veljaa, 2015.
13
SADRAJ1.UVOD12.OBILJEJA INTEL XEON PHI PROCESORA22.1
ARHITEKTURA22.2 PROGRAMIRANJE42.3 MJERENJE PERFORMANSI43. XEON PHI
5100 PERFORMANSE53.1 VEKTORSKE JEZGRE63.1.1. INSTRUKCIJSKA
LATENCIJA63.1.2 INSTRUKCIJSKI THROUGHPUT73.2 On-Chip I Off-Chip
Memorija83.3 PRSTENASTA POVEZANOST83.4 PCIe PRIJENOS PODATAKA104.
ZAKLJUAK125. LITERATURA.13
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 jezgreOn-chip
memorijaOff-chip memorijaPrstenasta povezanostPCIe vezaBudui 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. OBILJEJA INTEL XEON PHI PROCESORA
Baziran na intelovoj MIC(6) arhitekturi, Intel Xeon Phi je jedan
od rijetkih pravih viejezgrenih procesora kategoriji novih
high-throughput arhitektura koje ciljaju na HPC. Da bi postigao
visoke performance (oko 1 TFlop) Intel Xeon Phi koristi oko 60
jezgri i 30 MB on-chip keeva, te se oslanja na tradicionalne
vise-jezgrene znaajke kao to su SIMD/SIMT (7), visoki throughput I
visoke frekvencije, ali dodaje I neke nekonvencionalne kao to su
ukupna povezanost L2 kea I prstenasta meupovezanost a sve to u
cilju performansi I korisnosti.Intel Xeon Phi koprocesori pruaju
razliite konfiguracije da bi zadovoljili razliite hardverske i
softverske potrebe te zahtjeve za performansama I efikasnou. Tri su
familije Xeon Phi koprocesora: Intel Xeon Phi Coprocessor 3100
familija pogodna za zadatke sa visokom potrebom za paralelizmom kao
to su MonteCarlo, Black-Scholes, HPL, LifeSc i slino. Intel Xeon
Phi Coprocessor 5100 familija pogodna za zadatke koji su vezani za
irinu memoriju kao to su STREAM i kapacitet memorije kao to je
ray-traicing ili oboje kao na primjer RTM (reverse time migration)
Intel Xeon Phi Coprocessor 7100 familija prua najvei broj mogunosti
I najbolje performance. Podrava Intel Turbo Boost technology 1.0,
koja pojaava frekvenciju jezgri tijekom rada ako to dozvoljavaju
termalni uvjeti.
2.1 ARHITEKTURAIntel 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.
Slika 1: Intel Xeon Phi ArhitekturaSvaka 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 vezaBudui 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
akceleratorima smanjuje potrebu za mjenjanjem programa kao to je to
potrebno za CUDA-u ili OpenCL iako Phi koprocesori takoer podravaju
OpenCL.Dva su naina na koja aplikacija moe koristit Xeo Phi
processor:1. Offload mode glavna aplikacija radi na hostu I samo
iskrcava odabrane, visoko paralelne dijelove koda na koprocesor2.
Native mode aplikacija radi nezavisno, samo na Xeon Phi-u I moe
komunicirati sa glavnim procesorom ili drugim koprocesorima kroz
sistemsku sabirnicu.Za programiranje aplikacija na Phi-u korisnik
mora iskoristiti i funkcionalnost i paralelizam. S obzirom na to da
je arhitektura Xeon Phi-a x86 SMP na ipu, Phi prua mogunost
koritenja istih alata i programskih jezika i modela, kao to su
Pthreads, OpenMP, Intel Cilk Plus i OpenCL, koje koristi I obini
intel Xeon procesor. Drugim rijeima aplikacije koje rade na obinom
intel Xeon procesoru radit e i na Phi-u. Ova uniformnost uvelike
smanjuje kompleksnost razvoja softwera. 2.3 MJERENJE PERFORMANSIDa
bi se pokazala sva svojstva Xeo Phi-a potrebno ih je naravno
izmjeriti. Mjerenje se vri na svakoj mogunosti zasebno, u izolaciji
i pod optereenjem a rezultati performansi prikazuju se i
latencijski orijentirani I throughput orijentirani. Sustav mjerenja
prikazan je na slici 2.
Slika 2: Mjerenje performansi Xeon Phi-aLatencija je vrijeme
potrebno za izvravanje operacije I vraanje rezultata. Latencija se
fokusira na mjerenje jedne akcije od njenog poetka do kraja, te ta
operacija mora biti izolirana I izmjerena ne intruzivnom metodom
mjerenja. Mjerenje latencije izvreno je na jednoj niti (za
individualne operacije) I dvije niti (za operacije
prijenosa).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.3. XEON PHI 5100 PERFORMANSEU daljnjem tekstu
predstavljeni su detaljni rezultati performansi Xeon phi procesora
za latenciju I throughput za sljedee komponente: Vektorske jezgre
On-chip I off-chip memorija Prstenasta povezanost PCIe veza
3.1 VEKTORSKE JEZGREZa mjerenje latencije I throughput
vektorskih jezgri koristi se metoda u kojoj se latencija mjeri kroz
niz nezavisnih instrukcija kao naprimjer instrukcijski tok u kojem
iako su instrukcije povezane prisiljene sun a nezavisno
izvravanje.Za mjerenje throughput koritena je metoda koja koristei
sve raspoloive jezgre i istrauje faktore koji su potrebni za
postizanje teoretskog maksimuma na Xeon Phi-u.3.1.1. INSTRUKCIJSKA
LATENCIJAXeon Phi koristi 177 vektorskih operacija koje moemo
podijeliti u pet kategorija: Mask operacije Aritmetiko-logike
instrukcije Instrukcije pretvorbe Permutacijske instrukcije
Proirene maytematike instrukcijeRezultati mjerenja instrukcijske
latencije mogu se vidjeti u tablici
1OPERACIJAKATEGORIJALATENCIJA
kand, kor, knot, kxorMask operacija2
vaddpd, vfmaddpd, vmulpd,vsubpdAritmetika operacija4
Vcvtdq2pd, vcvtps2pdOperacije pretvaranja5
Vpermd, vpermf32x4Permutacijska operacija6
Vexp223ps, vlog2ps,vrsqrt23psProirena matematika operacija6
Tabela 1: instrukcijska latencija kod Xeon Phi-a
Mjerenje latencije vektorskih operacija je mjerenje vremena
izvravanja niza od 100 operacija koristei isti format zmm1 =
op(zmm1, zmm2) gdje su zmm1 i zmm2 dva vektora a op operacija koju
mjerimo. Koristei zmm1 kao izvorni i rezultatski operand,
osiguravamo ovisnost operacija, odnosno trenutna operacija ovisi o
rezultatu prethodne. 3.1.2 INSTRUKCIJSKI THROUGHPUTIntel 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.
Graf 1: Aritmetiki throughput na 60, 120 i 240 dretviZa 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: gdje je 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).3.2 On-Chip I Off-Chip MemorijaXeon Phi ima
dva nivoa keeva, L1 I L2. L1 ke je 32 KB dok bi L2 trebao biti
manji od 512 KB, nadalje, latencija pristupa kea je oko 2.78 ns za
L1 I 22.98 ns za L2, a sa korakom od 64 bytea Phi-u je potrebno
izmeu 287 I 291 ns za pristup podatcima u glavnoj memoriji (kada je
veliina skupa podataka vea 512KB). Xeon Phi 5100 ima 16 memorijskih
kanala, svaki irok 32 bita, a sa brzinom prijenosa do 5.0 GT/s
teoretska brzina prijenosa dostie 320 GB/s ali maksimalna brzina za
read I write operacije u stvarnosti je puno nia to se moe vidjeti
na grafovima 3 i 4.
Graf 3: brzina za operaciju read Graf 4: brzina za operaciju
writeKao 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 a na grafu moemo vidjeti
promjene u brzini pri razliitim konfiguracijama, a koritenje
streaming storea dodatno optimizira brzinu prijenosa pri spremanju
podataka.3.3 PRSTENASTA POVEZANOSTNa Xeon Phi-u jezgre i memorijski
kontroleri su meusobno povezani dvosmjernim prstenom. Kada vise
dretvi zahtjeva podatke u isto vrijeme, zajednike komponente kao to
su ring stops ili DTD-ovi mogu postati usko grlo i smanjiti
performance procesora. Da bi se provjerila ova hipoteza potrebno je
fiksirati dretve na jezgre i izmjeriti promjene u brzinama za
razliite scenarije mapiranja dretvi i jezgri. Za mjerenje koristi
se mapiranje dretvi na razliite jezgre u tri osnovna uzorka:
Kompaktni jezgre se nalaze u blizini jedna druge Raspreni jezgre su
pravilno rasporeene na prstenu Sluajni ID jezgri je nasumino
izabranaBrzine su mjerene koritenjem 2, 4, 8 i 16 jezgri a
rezultati su prikazani u grafu 4.
Graf 4: Promjene brzine na tri razliita rasporeda koritenih
jezgriMoemo 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.
Graf 5: brzine kada su dretve na istoj jezgri vs. na razliitim
jezgramaMoemo 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.3.4
PCIe PRIJENOS PODATAKAKada se koristi kao koprocesor Xeon Phi je za
host (npr tradicionalni CPU) povezan putem PCIe porta. Pri
koritenju za offloading zadatci i potrebni podatci moraju biti
premjetani izmeu dva procesora, a ovakvi prijenosi su skupi kada se
pogledaju ukupne performance programa. Postignuta brzina prijenosa
izmeu Phi-a i hosta moe se vidjeti (device to host) moe se vidjeti
na Grafu 6.
Graf 6: brzina prijenosa Phi HostMoemo 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.
4. ZAKLJUAK
Iz svega navedenog moemo zakljuiti da je intel Xeon Phi
processor uistinu High-throughput 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.
LITERATURAhttp://www.colfax-intl.com/nd/downloads/Xeon-Phi-Coprocessor-Datasheet.pdfhttps://www.microway.com/download/datasheet/Intel_Xeon_Phi_Coprocessor_Family_Brief.pdfhttp://www.cs.rpi.edu/~chrisc/COURSES/PARALLEL/SPRING-2013/papers/intel-phi.pdfhttp://www.pds.ewi.tudelft.nl/fileadmin/pds/homepages/fang/papers/icpe2k14a22.pdf