Model střechy - Roofline model

Příklad modelu Roofline v jeho základní podobě. Jak ukazuje obrázek, křivka se skládá ze dvou výkonových stropů specifických pro platformu: špičkový výkon procesoru a strop odvozený od šířky pásma paměti. Oba sekery jsou v logaritmická stupnice

The Model střechy je intuitivní vizuál výkonnostní model slouží k zajištění výkon odhady dané výpočetní jádro nebo běžící aplikace vícejádrový, mnohojádrový nebo plynový pedál procesorové architektury tím, že ukazuje inherentní hardwarová omezení a potenciální výhodu a prioritu optimalizace. Kombinováním lokalita, šířka pásma a jiné paralelizace paradigmat do jediného čísla výkonu, může být model účinnou alternativou k hodnocení kvality dosaženého výkonu namísto použití jednoduchých odhadů špičkového výkonu, protože poskytuje přehled o implementaci i inherentních omezeních výkonu.

Nejzákladnější model Roofline lze zobrazit vykreslením výkon s plovoucí desetinnou čárkou jako funkce špičkového výkonu stroje[vágní ][je zapotřebí objasnění ], maximální šířka pásma stroje a aritmetická intenzita. Výsledná křivka je účinně vázán na výkon, pod kterým existuje výkon jádra nebo aplikace, a zahrnuje dva výkonnostní stropy specifické pro platformu[je zapotřebí objasnění ]: strop odvozený od šířky pásma paměti a strop odvozený od špičkového výkonu procesoru (viz obrázek vpravo).

Související pojmy a metriky výkonu

Práce

The práce označuje počet operací provedených daným jádro nebo aplikace.[1] Tato metrika může odkazovat na jakýkoli typ operace, od počtu pole počet bodů aktualizován na počet celé číslo operací, na počet plovoucí bod operace (FLOP),[2] a výběr jednoho nebo druhého je řízen pohodlím. Ve většině případů však je vyjádřena jako FLOPy.[1][3][4][5][6]

Všimněte si, že práce je vlastnost daného jádra nebo aplikace a závisí tedy jen částečně na vlastnostech platformy.

Provoz paměti

The provoz v paměti označuje počet bajtů přenosů paměti vzniklých během provádění jádra nebo aplikace.[1] Na rozdíl od , je silně závislá na vlastnostech zvolené platformy, jako je například struktura mezipaměti hierarchie.[1]

Aritmetická intenzita

The aritmetická intenzita , označovaný také jako provozní intenzita,[3][7] je poměr práce do paměti :[1]

a označuje počet operací na byte provozu paměti. Když práce je vyjádřena jako FLOPy, výsledná aritmetická intenzita bude poměr operací s plovoucí desetinnou čárkou k celkovému pohybu dat (FLOPy / bajt).

Naivní střešní linie

Příklad naivního pozemku Roofline, kde dva jádra jsou hlášeny. První (svislá přerušovaná červená čára) má aritmetická intenzita to je pod maximální šířka pásma strop (diagonální plná černá čára), a je pak vázaný na paměť. Místo toho má druhá (odpovídající svislé přerušované červené čáře úplně vpravo) aritmetická intenzita to je pod špičkový výkon strop (vodorovná plná černá čára), a tak je vázaný na výpočet.

The naivní Roofline[3] se získá použitím jednoduché analýzy vázaných a úzkých míst.[8] V této formulaci modelu Roofline existují pouze dva parametry, vrchol výkon a vrchol šířka pásma konkrétního architektura a jedna proměnná, aritmetická intenzita. Špičkový výkon, obecně vyjádřený jako GFLOPS, lze obvykle odvodit z architektonických příruček, zatímco špičková šířka pásma, která odkazuje na špičku DOUŠEK šířka pásma, aby byla konkrétní, je místo toho získána prostřednictvím benchmarking.[1][3] Výsledný graf, obecně s oběma sekery v logaritmická stupnice, je pak odvozeno podle následujícího vzorce:[1]

kde je dosažitelný výkon, je špičkový výkon, je maximální šířka pásma a je aritmetická intenzita. Bod, ve kterém výkon nasycuje na špičkové úrovni výkonu , to je místo, kde se setkává diagonální a horizontální střecha, je definována jako hřebenový bod.[4] Bod hřebene nabízí přehled o celkovém výkonu stroje tím, že poskytuje minimální aritmetickou intenzitu potřebnou k tomu, aby bylo možné dosáhnout špičkového výkonu, a na první pohled navrhuje množství úsilí, které programátor potřebuje k dosažení špičkového výkonu.[4]

Daná jádro nebo aplikace je pak charakterizována bodem daným její aritmetickou intenzitou (na ose x). Dosažitelný výkon se pak vypočítá nakreslením svislé čáry, která narazí na křivku Roofline. Proto. jádro nebo aplikace se říká, že jsou vázaný na paměť -li . Naopak, pokud , výpočet se říká, že je vázaný na výpočet.[1]

Přidání stropů k modelu

The naivní Roofline poskytuje jen horní hranice (teoretické maximum) do výkon. Přestože může poskytnout užitečné informace o dosažitelném výkonu, neposkytuje úplný obraz o tom, co ji ve skutečnosti omezuje. Pokud se například uvažuje jádro nebo aplikace funguje hluboko pod Roofline, může být užitečné zachytit jiné výkonnostní stropy, jiné než jednoduchý vrchol šířka pásma a výkon, aby programátor lépe vedl optimalizace implementovat, nebo dokonce posoudit vhodnost architektura použitý s ohledem na analyzované jádro nebo aplikaci.[3] Přidané stropy poté omezují dosažitelný výkon, který je pod skutečnou úrovní střechy, a naznačují, že jádro nebo aplikace nemohou prorazit nikoho z těchto stropů, aniž by nejprve provedli příslušnou optimalizaci.[3][4]

Graf Roofline lze rozšířit na tři různé aspekty: sdělení, přidáním stropy šířky pásma; výpočet, přidáním tzv vnitřní stropy; a lokalita, přidáním zdí lokality.

Stropy šířky pásma

The stropy šířky pásma jsou úhlopříčky šířky pásma umístěné pod idealizovanou špičkovou úhlopříčkou šířky pásma. Jejich existence je způsobena nedostatkem nějakého druhu architektonické optimalizace související s pamětí, jako je soudržnost mezipaměti nebo optimalizace softwaru, například špatná expozice konkurence (to zase omezuje využití šířky pásma).[3][4]

Vnitřní stropy

The vnitřní stropy jsou křivka podobná linii střechy pod skutečnou linií střechy, která může být přítomna kvůli nedostatku nějaké formy rovnoběžnost. Tyto stropy účinně omezují, jak vysokého výkonu lze dosáhnout. Výkon nemůže překročit strop v jádru, dokud nebude vyjádřen a využit základní nedostatek paralelismu. Stropy lze odvodit také z jiných architektonických příruček pro optimalizaci než z referenčních hodnot.[3][4]

Zdi lokality

Pokud je odstraněn ideální předpoklad, že aritmetická intenzita je pouze funkcí jádra, a topologie mezipaměti - a tedy chybí mezipaměť - je brána v úvahu, aritmetická intenzita se jasně stává závislou na kombinaci jádra a architektury. To může mít za následek zhoršení výkonu v závislosti na rovnováze mezi výslednou aritmetickou intenzitou a hřebenový bod. Na rozdíl od „správných“ stropů jsou výsledné čáry na grafu Roofline svislé bariéry, kterými aritmetická intenzita nemůže projít bez optimalizace. Z tohoto důvodu se na ně odkazuje jako zdí lokality nebo aritmetická intenzita stěny.[3][4]

Rozšíření modelu

Od svého zavedení[3][4] model byl dále rozšířen, aby zohledňoval širší sadu metrik a úzkých míst souvisejících s hardwarem. Již jsou k dispozici v literatuře a existují rozšíření, která berou v úvahu dopad NUMA organizace Paměť,[6] z provedení mimo objednávku,[9] z Paměť latence,[9][10] a modelovat na jemnější zrno mezipaměti hierarchie[5][9] abychom lépe porozuměli tomu, co ve skutečnosti omezuje výkon, a řídit optimalizace proces.

Model byl také rozšířen tak, aby lépe vyhovoval konkrétním požadavkům architektury a související charakteristiky, například FPGA.[11]

Viz také

Reference

  1. ^ A b C d E F G h Ofenbeck, G .; Steinmann, R .; Caparros, V .; Spampinato, D. G .; Püschel, M. (01.03.2014). Použití modelu střechy. 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). str. 76–85. doi:10.1109 / ISPASS.2014.6844463. ISBN  978-1-4799-3606-9.
  2. ^ David A. Patterson, John L. Hennessy. Organizace a design počítače. str. 543.
  3. ^ A b C d E F G h i j Williams, Samuel W. (2008). Výkon automatického ladění na vícejádrových počítačích (Ph.D.). Kalifornská univerzita v Berkeley.
  4. ^ A b C d E F G h Williams, Samuel; Waterman, Andrew; Patterson, David (01.04.2009). „Roofline: Insightful Visual Performance Model for Multicore Architectures“. Commun. ACM. 52 (4): 65–76. doi:10.1145/1498765.1498785. ISSN  0001-0782.
  5. ^ A b Ilic, A .; Pratas, F .; Sousa, L. (01.01.2014). „Model Roofline s vědomím mezipaměti: Modernizace podkroví“. Dopisy počítačové architektury IEEE. 13 (1): 21–24. doi:10.1109 / L-CA.2013.6. ISSN  1556-6056.
  6. ^ A b Lorenzo, Oscar G .; Pena, Tomás F .; Cabaleiro, José C .; Pichel, Juan C .; Rivera, Francisco F. (2014-03-31). „Použití rozšířeného modelu střechy k pochopení příbuznosti dat a vláken v systémech NUMA“. Annals of Multicore and GPU Programming. 1 (1): 56–67. ISSN  2341-3158.
  7. ^ „Model výkonu střechy“. Lawrence Berkeley National Laboratory. Citováno 19. června 2016.
  8. ^ Kourtis, Kornilios; Goumas, Georgios; Koziris, Nectarios (01.01.2008). Optimalizace rozmnožování řídkých matic-vektorů pomocí komprese indexu a hodnoty. Sborník z 5. konference o počítačových hranicích. CF '08. New York, NY, USA: ACM. str. 87–96. CiteSeerX  10.1.1.140.9391. doi:10.1145/1366230.1366244. ISBN  9781605580777.
  9. ^ A b C Cabezas, V. C .; Püschel, M. (01.10.2014). Rozšíření modelu střechy: Analýza úzkých míst s mikroarchitekturními omezeními. 2014 IEEE International Symposium on Workload Characterization (IISWC). str. 222–231. doi:10.1109 / IISWC.2014.6983061. ISBN  978-1-4799-6454-3.
  10. ^ Lorenzo, O. G .; Pena, T. F .; Cabaleiro, J. C .; Pichel, J. C .; Rivera, F. F. (2014-03-26). "3DyRM: dynamický model střechy včetně informací o latenci paměti". The Journal of Supercomputing. 70 (2): 696–708. doi:10.1007 / s11227-014-1163-4. ISSN  0920-8542.
  11. ^ da Silva, Bruno; Braeken, An; D'Hollander, Erik H .; Touhafi, Abdellah (01.01.2013). „Výkonové modelování pro FPGA: Rozšíření modelu střechy o syntetické nástroje na vysoké úrovni“. International Journal of Reconfigurable Computing. 2013: 1–10. doi:10.1155/2013/428078. ISSN  1687-7195.

externí odkazy

Dostupné nástroje