GPU-prestanda beror inte bara på tråd-/varpnivåparallalism (TLP) utan också på instruktionsnivåparallalism (ILP). Det räcker inte att schemalägga instruktioner inom grundläggande block, det är också nödvändigt att utnyttja möjligheter för ILP optimering utanför grengränser. Tyvärr, moderna GPUs kan inte dynamiskt utföra sådana optimeringar eftersom de saknar hårdvara gren förutsägelse och inte kan spekulativt utföra instruktioner utanför en gren. Vi föreslår att man kringgår dessa begränsningar genom att anpassa Trace Scheduling, en teknik som ursprungligen utvecklats för mikrokodoptimering. Spåra schemaläggning delar in koden i spår (eller sökvägar), och optimerar varje spår på ett sammanhangsoberoende sätt. Anpassning Trace Scheduling till GPU-kod kräver återbesök och översyn av varje steg av microcode Trace Scheduling att ta hand om gren och warp beteende, identifiera instruktioner på den kritiska vägen, undvika warp divergens, och minska divergens tid. Här föreslår vi "Warp-Aware Trace Scheduling" för GPU:er. Som utvärderats på Rodinia Benchmark Suite med dynamisk profilering, vår helautomatiska optimering uppnår en geometrisk genomsnittlig hastighetsökning på 1,10× på ett verkligt system genom att öka instruktioner utförda per cykel (IPC) med ett harmoniskt medelvärde på 1,12× och minska instruktioner serialisering och totala instruktioner utförda.
REF introducerar warp-aware spårningsschema för GPU:er baserat på specificering av belastningar och aritmetiska instruktioner vid avvikelser för att utnyttja ILP.
Warp-aware trace scheduling for GPUs
{'venue': "PACT '14", 'journal': None, 'mag_field_of_study': ['Computer Science']}