Power9 — про­цес­со­ры для боль­ших дан­ных

Otkrytye sistemy. SUBD. - - СОДЕРЖАНИЕ - Ми­ха­ил Кузь­мин­ский

Та­кие при­ло­же­ния ко­гни­тив­ной эры, как про­гноз­ная ана­ли­ти­ка и ис­кус­ствен­ный ин­тел­лект, тре­бу­ют не толь­ко но­вых ар­хи­тек­тур цен­тров об­ра­бот­ки дан­ных, но и но­вых про­цес­со­ров.

Та­кие при­ло­же­ния ко­гни­тив­ной эры, как про­гноз­ная ана­ли­ти­ка и ис­кус­ствен­ный ин­тел­лект, тре­бу­ют не толь­ко но­вых ар­хи­тек­тур цен­тров об­ра­бот­ки дан­ных, но и но­вых про­цес­со­ров.

Клю­че­вые сло­ва: ко­гни­тив­ные вы­чис­ле­ния, мик­ро­ар­хи­тек­ту­ра про­цес­со­ров Keywords: cognitive computing, HPC, Power8, Power9, processor microarchitecture

Кор­по­ра­ция IBM раз­ра­бо­та­ла Risc­про­цес­сор Power9, пре­тен­ду­ю­щий на роль ве­ду­ще­го об­ра­бот­чи­ка боль­ших дан­ных. В ос­нов­ной ста­тье IBM раз­ра­бот­чи­ки от­ме­ча­ют че­ты­ре об­ла­сти при­ме­не­ния Power9 [1]: про­гноз­ная ана­ли­ти­ка, ис­кус­ствен­ный ин­тел­лект и ко­гни­тив­ные вы­чис­ле­ния; ги­пер­мас­шта­би­ру­е­мые ЦОД; кор­по­ра­тив­ные вы­чис­ле­ния; вы­со­ко­про­из­во­ди­тель­ные вы­чис­ле­ния.

Ко­неч­но, мно­го ком­по­нен­тов мик­ро­ар­хи­тек­ту­ры Power9 бы­ло взя­то из Power8 [2], од­на­ко в но­вом про­цес­со­ре име­ет­ся ряд ори­ги­наль­ных ре­ше­ний, да­же на ба­зо­вом уровне поз­во­ля­ю­щих го­во­рить о зна­чи­тель­ном про­грес­се. Power9 про­из­во­дят по 14-на­но­мет­ро­вой тех­но­ло­гии FIN-FET (тран­зи­сто­ры с трех­мер­ны­ми за­тво­ра­ми), а про­цес­сор со­дер­жит 8 млрд тран­зи­сто­ров на пло­ща­ди 695 кв. мм, что чуть боль­ше, чем в Power8.

Струк­ту­ра кон­вей­е­ров раз­де­ля­ет­ся на фрон­таль­ный ком­по­нент (внеш­ний, до на­ча­ла вы­пол­не­ния ко­манд от­ве­ча­ю­щий, на­при­мер, за дис­пет­чи­ро­ва­ние) и ком­по­нент бло­ков вы­пол­не­ния (EU). Усо­вер­шен­ство­ва­ны бы­ли оба. В част­но­сти, су­ще­ствен­но улуч­ше­но пред­ска­за­ние пе­ре­хо­дов для вне­оче­ред­но­го вы­пол­не­ния ко­манд, а ар­хи­тек­ту­ра EU пре­тер­пе­ла зна­чи­тель­ные из­ме­не­ния.

На од­ном уровне EU, на­зы­ва­е­мом Slice (S), со­дер­жат­ся век­тор­но-ска­ляр­ные устрой­ства (Vector and Scalar Unit, VSU), ра­бо­та­ю­щие с 64-раз­ряд­ны­ми дан­ны­ми — как це­ло­чис­лен­ны­ми, так и в фор­ма­те с пла­ва­ю­щей за­пя­той (см. ри­су­нок). Кро­ме то­го, здесь име­ют­ся тра­ди­ци­он­ные бло­ки за­груз­ки/за­пи­си дан­ных (Load Store Unit, LSU), об­ра­ба­ты­ва­ю­щие до че­ты­рех опе­ра­ций чте­ния/за­пи­си двой­ных слов за такт, устрой­ство вы­пол­не­ния пе­ре­хо­дов (Branch Unit, BRU) и устрой­ство вы­бор­ки ко­манд (Instruction Fetch Unit, IFU), спо­соб­ное вы­би­рать во­семь ко­манд за такт в бу­фер ко­манд и со­дер­жа­щее оп­ти­ми­зи­ро­ван­ный пред­ска­за­тель пе­ре­хо­дов для под­держ­ки вне­оче­ред­но­го вы­пол­не­ния ко­манд. В об­щем кон­вей­е­ре VSU вы­пол­ня­ют­ся не толь­ко це­ло­чис­лен­ные опе­ра­ции и опе­ра­ции с пла­ва­ю­щей за­пя­той, но так­же и крип­то­гра­фи­че­ские ко­ман­ды [1].

Из двух S об­ра­зу­ет­ся су­пер­с­лой (SS), ра­бо­та­ю­щий со 128-раз­ряд­ны­ми дан­ны­ми (в том чис­ле с чис­ла­ми но­во­го ти­па — на­при­мер, 128-раз­ряд­ны­ми чис­ла­ми с пла­ва­ю­щей за­пя­той чет­вер­ной точ­но­сти). Про­цес­сор­ное яд­ро Power9 ти­па SMT4 (ап­па­рат­ная под­держ­ка че­ты­рех про­грамм­ных ни­тей, Simultaneous Multithreading) ос­но­вы­ва­ет­ся на двух SS и со­дер­жит еще и тра­ди­ци­он­ные бло­ки. Но Power9 мо­жет ба­зи­ро­вать­ся и на яд­рах дру­гих ти­пов — SMT8, ко­то­рые вдвое боль­ше по раз­ме­рам, чем SMT4, и вклю­ча­ют че­ты­ре 128-раз­ряд­ных SS плюс те же уве­ли­чен­но­го раз­ме­ра тра­ди­ци­он­ные бло­ки. Об­щее чис­ло про­цес­сор­ных ядер SMT4 в мик­ро­схе­ме Power9 рав­но 24, а в ва­ри­ан­те с SMT8 — 12. (Ос­но­ва яд­ра на ри­сун­ке за­клю­че­на в cи­нюю рам­ку, а в яд­ре SMT8 бу­дет вдвое боль­ше всех ком­по­нен­тов.) Smt-яд­ра под­дер­жи­ва­ют вне­оче­ред­ное вы­пол­не­ние ко­манд; SMT4 обес­пе­чи­ва­ет воз­мож­ность за­вер­ше­ния до 128 ко­манд на каж­дом так­те, а SMT8 — до 256 ко­манд.

Про­цес­сор Power9 c 24 Smt4-яд­ра­ми пред­на­зна­чен для уни­вер­саль­но­го при­ме­не­ния в ка­че­стве плат­фор­мы для ОС Linux, 12-ядер­ный Power9 на SMT8 ори­ен­ти­ру­ет­ся на ра­бо­ту си­стем c вир­ту­а­ли­за­ци­ей че­рез Powervm для Linux и ОС IBM iи AIX. В вер­сии яд­ра Linux 4.12 уже име­ет­ся рас­ши­рен­ная под­держ­ка Power9.

Для об­ла­стей при­ло­же­ний Power9 осо­бен­но важ­на иерар­хия си­сте­мы па­мя­ти. Кэш ко­манд — 8-ка­наль­ный, ем­ко­стью 32 Кбайт. Для SMT4 име­ет­ся лич­ный (ло­каль­ный) 8-ка­наль­ный на­бор­но-ас­со­ци­а­тив­ный кэш дан­ных пер­во­го уров­ня (L1) ем­ко­стью 32 Кбайт. Так­же 8-ка­наль­ный на­бор­но-ас­со­ци­а­тив­ный кэш вто­ро­го уров­ня (L2) ем­ко­стью 512 Кбайт на яд­ро SMT8 яв­ля­ет­ся об­щим для двух вхо­дя­щих в SMT8 ядер SMT4. Внеш­ний кэш тре­тье­го уров­ня (L3) име­ет ар­хи­тек­ту­ру NUCA с неод­но­род­ным доступом и по­стро­ен на тех­но­ло­гии EDRAM (как и в Power8). Ем­кость его об­ла­сти на од­ном яд­ре SMT8 (об­щая для двух ядер SMT4) cо­став­ля­ет 10 Мбайт, а сам кэш — 20-ка­наль­ный на­бор­но-ас­со­ци­а­тив­ный. Со­от­вет­ствен­но, для 12 об­ла­стей на 12 яд­рах SMT8 в Power9 ем­кость об­ще­го кэ­ша L3 со­став­ля­ет 120 Мбайт. Для об­ра­зо­ва­ния об­ще­го кэ­ша L3 об­мен дан­ны­ми меж­ду его об­ла­стя­ми ре­а­ли­зу­ет­ся че­рез об­щий вы­со­ко­про­из­во­ди­тель­ный ком­му­та­тор. Ор­га­ни­за­ция ра­бо­ты кэ­шпа­мя­ти в Power9 так­же бы­ла улуч­ше­на.

Опе­ра­тив­ная па­мять для ра­бо­ты Power9 ос­но­ва­на на тех­но­ло­гии DDR4, од­на­ко име­ют­ся две раз­ные груп­пы вы­чис­ли­тель­ных Smp-си­стем, ко­то­рые бу­дут стро­ить­ся на ба­зе Power9, — c «го­ри­зон­таль­ным» и «вер­ти­каль­ным» мас­шта­би­ро­ва­ни­ем. Речь идет об од­но-, двух- или мно­го­про­цес­сор­ных Smp-си­сте­мах. В пер­вой груп­пе па­мять по­стро­е­на с обыч­ным пря­мым под­со­еди­не­ни­ем че­рез во­семь пор­тов (два бло­ка по че­ты­ре пор­та) DDR4 с об­щей про­пуск­ной спо­соб­но­стью 120 Гбайт/с. Каж­дая опе­ра­ция чте­ния мо­жет охва­ты­вать 64 или 128 байт. Мак­си­маль­ная ем­кость па­мя­ти на один про­цес­сор­ный разъ­ем (со­кет) со-

став­ля­ет 4 Тбайт, а до­ступ ко всей па­мя­ти ре­а­ли­зу­ет­ся че­рез об­щий ком­му­та­тор.

Для мно­го­про­цес­сор­ных Smp-си­стем на ба­зе Power9 ра­бо­та с па­мя­тью бу­дет ор­га­ни­зо­ва­на с ис­поль­зо­ва­ни­ем бу­фер­ной ар­хи­тек­ту­ры па­мя­ти из Power8. На каж­дый со­кет мож­но под­со­еди­нить 8 Тбайт, и име­ет­ся во­семь бу­фер­ных ка­на­лов па­мя­ти с об­щей про­пуск­ной спо­соб­но­стью 230 Гбайт/с. На­при­мер, на ба­зе че­ты­рех че­ты­рех­про­цес­сор­ных си­стем мож­но по­стро­ить об­щую Smp-си­сте­му на 16 про­цес­со­ров, свя­зы­ва­е­мых меж­ду со­бой по то­по­ло­гии, ко­то­рая тре­бу­ет не бо­лее двух прыж­ков меж­ду са­мы­ми уда­лен­ны­ми Power9.

В Power9 име­ет­ся два ком­му­та­тор­ных меж­со­еди­не­ния: для ко­манд и дан­ных. Ком­му­та­тор для дан­ных име­ет струк­ту­ру, ос­но­ван­ную на 96 эле­мен­тах, об­ра­зу­ю­щих дву­мер­ную то­по­ло­гию 9×12. Каж­дый эле­мент ра­бо­та­ет на ча­сто­те 2,4 ГГЦ и пе­ре­да­ет 32 бай­та за такт, что да­ет 76,8 Гбайт/с. А сум­мар­ная про­пуск­ная спо­соб­ность со­став­ля­ет око­ло 7 Тбайт/с. Та­кой ком­му­та­тор при­ме­ня­ет­ся для ло­каль­ных Smp­об­ме­нов дан­ны­ми меж­ду яд­ра­ми Power9 (вклю­чая под­держ­ку ко­ге­рент­но­сти кэ­ша L3) и для до­сту­па от про­цес­со­ра к це­ло­му ря­ду раз­ных внеш­них по от­но­ше­нию к Power9 устройств: к дру­гим Power9 в Smp-си­сте­мах; к ак­се­ле­ра­то­рам, вклю­чая CAPI (Coherent Accelerator Processor Interface) 2.0 и OPENCAPI для под­клю­че­ния уско­ри­те­лей FPGA и за­каз­ных ин­те­граль­ных схем (ASIC), к GPU Nvidia по ка­на­лу Nvlink 2.0; к опе­ра­тив­ной па­мя­ти; к внеш­ним устрой­ствам че­рез 48 ли­ний PCIE v4. Ап­па­рат­ная под­держ­ка под­со­еди­не­ния раз­ных ак­се­ле­ра­то­ров по­ка­зы­ва­ет на­це­лен­ность Power9 на построение ге­те­ро­ген­ных си­стем с уве­ли­чен­ной про­из­во­ди­тель­но­стью.

Каж­дый ка­нал, под­со­еди­ня­е­мый к ком­му­та­то­ру от кэ­ша L3 яд­ра SMT8 для обес­пе­че­ния ко­ге­рент­но­сти име­ет про­пуск­ную спо­соб­ность 128 Гбайт/с в каж­дом на­прав­ле­нии (та­ких ка­на­лов 12). Ра­бо­та­ю­щий че­рез ком­му­та­тор ло­каль­ный Smp-ин­тер­фейс для об­ме­на дан­ны­ми меж­ду че­тырь­мя со­ке­та­ми, рас­по­ло­жен­ны­ми на ма­те­рин­ской пла­те, ис­поль­зу­ет 30 ли­ний по 16 Гбит/с. Ма­те­рин­ские пла­ты мож­но со­еди­нить меж­ду со­бой ка­бе­ля­ми для по­стро­е­ния мно­го­про­цес­сор­ных Smp-си­стем, со­дер­жа­щих до 16 со­ке­тов. Для каж­до­го та­ко­го со­еди­не­ния ис­поль­зу­ют­ся 20 меж­про­цес­сор­ных ли­ний с про­пуск­ной спо­соб­но­стью по 25 Гбит/с, ра­бо­та­ю­щих че­рез об­щий ком­му­та­тор. Че­рез ком­му­та­тор ра­бо­та­ет ин­тер­фейс до­сту­па к Nvlink и но­во­му ва­ри­ан­ту CAPI, ко­то­рый ба­зи­ру­ет­ся на 48 ли­ни­ях Bluelink с 25 Гбит/с, что да­ет сум­мар­ную дуп­лекс­ную про­пуск­ную спо­соб­ность 300 Гбайт/с. Ин­тер­фейс OPENCAPI за­дей­ству­ет во­семь та­ких ли­ний. Все эти ли­нии мо­гут ис­поль­зо­вать­ся и как меж­про­цес­сор­ные. Ввод-вы­вод че­рез PCIE обес­пе­чи­ва­ет­ся на сум­мар­ной дуп­лекс­ной про­пуск­ной спо­соб­но­сти 190 Гбайт/с (че­рез ши­ны PCIE под­со­еди­ня­ют­ся Fpga-уско­ри­те­ли CAPI 2.0).

От­дель­но­го вни­ма­ния за­слу­жи­ва­ет под­дер­жи­ва­е­мая в Power9 рас­ши­рен­ная си­сте­ма ко­манд ISA v3.0, спе­ци­аль­но пред­на­зна­чен­ная для ра­бо­ты в том чис­ле с та­ки­ми при­клад­ны­ми об­ла­стя­ми, как про­гноз­ная ана­ли­ти­ка, ис­кус­ствен­ный ин­тел­лект и ко­гни­тив­ные вы­чис­ле­ния. Под­дер­жи­ва­ют­ся но­вые ти­пы дан­ных, на­при­мер 128-раз­ряд­ные чис­ла с пла­ва­ю­щей за­пя­той чет­вер­ной точ­но­сти (IEEE 754-2008), ис­поль­зу­е­мые в фи­нан­со­вых при­ло­же­ни­ях и в сфе­ре без­опас­но­сти, а так­же це­лые, при­ме­ни­мые в ба­зах дан­ных.

Си­сте­ма ко­манд про­цес­со­ра Power и ра­нее со­дер­жа­ла ори­ги­наль­ные ко­ман­ды, на­при­мер крип­то­гра­фи­че­ские, а в вер­сии 3.0 по­яви­лась ко­ман­да ге­не­ра­ции слу­чай­но­го чис­ла, сер­ти­фи­ци­ро­ван­ная NIST. Кро­ме то­го, у Power9 име­ют­ся ато­мар­ные ко­ман­ды для ра­бо­ты с па­мя­тью, вы­пол­ня­е­мые кон­трол­ле­ром па­мя­ти: сравнение, на­хож­де­ние мак­си­му­ма и ми­ни­му­ма и др.

Что ка­са­ет­ся ко­манд с пла­ва­ю­щей за­пя­той, то, кро­ме опе­ра­ций умно­же­ния и сло­же­ния, в Power9 под­дер­жи­ва­ют­ся де­ле­ние и из­вле­че­ние квад­рат­но­го кор­ня. Для наи­бо­лее тра­ди­ци­он­ной в об­ла­сти HPC ра­бо­ты с чис­ла­ми двой­ной точ­но­сти (DP) каж­дая SS мо­жет за­вер­шать за такт две ска­ляр­ные или од­ну век­тор­ную (дли­ной в два чис­ла) опе­ра­цию ти­па «умно­жить и сло­жить». Cо­от­вет­ствен­но, ти­по­вое для HPC яд­ро SMT4 с дву­мя SS да­ет во­семь Dp-ре­зуль­та­тов за такт, а весь Power9 — 192 ре­зуль­та­та.

Ис­поль­зу­е­мые в мик­ро­ар­хи­тек­ту­ре Power9 яд­ра име­ют бо­лее спе­ци­фи­че­скую функ­ци­о­наль­ность, чем в дру­гих рас­про­стра­нен­ных про­цес­со­рах — на­при­мер, в про­цес­со­рах x86-ар­хи­тек­ту­ры Intel, где про­цес­сор­ные яд­ра вы­пол­ня­ют прак­ти­че­ски все функ­ции все­го про­цес­со­ра. В Power9 Smt-яд­ра от­да­ют часть функ­ций об­ще­му ком­му­та­то­ру.

Пред­по­ла­га­ет­ся че­ты­ре ва­ри­ан­та ре­а­ли­за­ции Power9: c SMT4 или SMT8, для од­но–двух­про­цес­сор­ных или мно­го­про­цес­сор­ных си­стем. С Power9 в первую оче­редь бу­дут кон­ку­ри­ро­вать сер­вер­ные про­цес­со­ры Intel Skylake-sp, так­же вы­пус­ка­е­мые по тех­но­ло­гии 14 нм. Яд­ра Skylake-sp мо­гут ра­бо­тать с бо­лее длин­ны­ми, чем SMT4 и SMT8, век­то­ра­ми и по­лу­чать 32 Dp-ре­зуль­та­та за такт, а в стар­шей 28-ядер­ной мо­де­ли это да­ет 896 Dp-ре­зуль­та­тов за такт.

Для Hpc-си­стем на плат­фор­ме Power9 це­ле­со­об­раз­но ори­ен­ти­ро­вать­ся на ге­те­ро­ген­ные кон­фи­гу­ра­ции, в первую оче­редь с до­бав­ле­ни­ем гра­фи­че­ских про­цес­со­ров Nvidia. Од­на­ко Power9 пред­на­зна­чен и для си­стем, ра­бо­та­ю­щих в ги­пер­мас­шта­би­ру­е­мых об­лач­ных ЦОД, где про­цес­сор име­ет ряд пре­иму­ществ: ввод-вы­вод (ра­бо­та че­рез PCIE v4 про­тив PCIE v3 в Skylake); ор­га­ни­за­ция боль­ших Smp-си­стем на ба­зе SMT8; огром­ный кэш L3 (120 Мбайт про­тив 38,5 Мбайт в Skylake-sp); до­ступ к FPGA.

***

Про­цес­сор Power9 вме­сте с Nvidia V100 (Volta) бу­дет при­ме­нять­ся в вы­чис­ли­тель­ных уз­лах су­пер­ком­пью­те­ров Summit и Sierra в Окридж­ской и Ли­вер­мор­ской на­ци­о­наль­ных ла­бо­ра­то­ри­ях США, что уже го­во­рит са­мо за се­бя.

ЛИТЕРАТУРА

1. Sadasivam S. K. et al. IBM Power9 Processor Architecture // IEEE Micro. — 2017. Vol. 37, N. 2. — P. 40–51.

2. Ми­ха­ил Кузь­мин­ский. По­пол­не­ние в се­мей­стве Power // От­кры­тые си­сте­мы. СУБД. — 2014. — №7. — С. 16–18. URL: https://www.osp.ru/os/2014/07/13042909 (да­та об­ра­ще­ния: 18.09.2017).

Ми­ха­ил Кузь­мин­ский (kus@free.net) — со­труд­ник, Ин­сти­тут ор­га­ни­че­ской хи­мии РАН (Москва).

Ар­хи­тек­ту­ра яд­ра SMT4

Newspapers in Russian

Newspapers from Russia

© PressReader. All rights reserved.