Model střechy - Roofline model
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]
Naivní střešní linie
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]
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.
Příklad modelu Roofline s přidaným šířka pásma stropy. V tomto modelu představují dva další stropy absenci předběžné načítání softwaru a NUMA organizace Paměť.
Příklad modelu Roofline s přidaným vnitřní stropy, kde dva přidané stropy představují nedostatek paralelismus na úrovni výuky a paralelismus na úrovni úkolů.
Příklad modelu Roofline s zdí lokality. Zeď označená jako 3 C označuje přítomnost všech tří typů chybí mezipaměť: povinné, kapacitní a konfliktní chyby. Zeď označená jako 2 C představuje přítomnost buď povinných a kapacitních, nebo povinných a konfliktních chyb. Poslední zeď označuje přítomnost jen povinných zmeškaných.
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
- ^ 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.
- ^ David A. Patterson, John L. Hennessy. Organizace a design počítače. str. 543.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ „Model výkonu střechy“. Lawrence Berkeley National Laboratory. Citováno 19. června 2016.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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
- Model střechy: Pedagogický nástroj pro automatické ladění jader na vícejádrových architekturách
- Použití modelu Roofline
- Rozšíření modelu střechy: Analýza úzkých míst s mikroarchitekturními omezeními