Programmeringsspråk som tillhandahåller flerdimensionella matriser och en platt linjär minnesmodell måste genomföra en kartläggning mellan dessa två domäner för att beställa matriselement i minnet. Denna layout funktion är fast vid språkdefinition tid och utgör en osynlig, icke-programmerbar array attribut. I verkligheten är modemminnessystem arkitektoniskt hierarkiskt snarare än platt, med betydande skillnader i prestanda mellan olika nivåer i hierarkin. Denna missmatchning mellan modellen och den verkliga arkitekturen hos minnessystem kan resultera i låg lokalisering av referens och dålig prestanda. En del av denna förlust i prestanda kan återvinnas genom att ombeställa beräkningar med hjälp av omvandlingar såsom loop tiling. Vi undersöker ickelinjär array layout funktioner som ytterligare ett sätt att förbättra lokaliseringen av referens. För en referenssvit som består av täta matriskärnor visar vi genom timing och simulering att två specifika layouter (4D och Morton) har låga implementationskostnader (2–5 % av den totala drifttiden) och fördelar med hög prestanda (minskar exekveringstiden med faktorerna 1.1–2.5), att de har smidiga prestandakurvor, både i ett brett spektrum av problemstorlekar och över representativa cachearkitekturer, och att rekursionsbaserade styrstrukturer kan behövas för att tillskansa sig deras potential.
Denna layout är relaterad till icke-linjära array layouter REF i allmänhet.
Nonlinear array layouts for hierarchical memory systems
{'venue': "ICS '99", 'journal': None, 'mag_field_of_study': ['Computer Science']}