14
SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO – MATEMATIČKIH I ODGOJNIH ZNANOSTI STUDIJ: INFORMATIKA Intel Xeon P! "#o$e% Se&!n'#%(! #') Kole*!+: Paralelno programiranje St,)ent: Ana Vila Mento#: Sven Gotovac -#o+ !n)e(%': 764!I Mo%t'#. Vel+'/'. 01234

Intel Xeon Phi

Embed Size (px)

DESCRIPTION

seminarski rad na temu Intel Xeon Phi koprocesoriFakultet: FPMOZ MostarKolegij: Paralelno Programiranje

Citation preview

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