Nuvarande grafik bearbetningsenheter (GPU) använder den enda instruktion flera tråd (SIMT) utförande modell. Med SIMT utför en grupp logiska trådar så att alla trådar i gruppen utför en enda gemensam instruktion på en viss cykel. För att göra det möjligt för kontrollflödet att avvika inom gruppen trådar serialiserar GPU:er delvis utförandet och följer en enda styrflödesbana åt gången. Utförandet av trådarna i gruppen som inte är på den nuvarande vägen maskeras. De flesta nuvarande GPU:er förlitar sig på en hårdvara reconvergence stack för att spåra flera samtidiga vägar och för att välja en enda väg för utförande. Kontrollflödesvägar trycks på stacken när de avviker och poppas av stacken för att göra det möjligt för trådar att omgruppera och hålla filanvändning högt. Stackens algoritm garanterar optimal rekonvergens för applikationer med strukturerat kontrollflöde när det passerar det strukturerade kontrollflödesträdets djup först. Nackdelen med att använda reconvergence stacken är att endast en enda väg följs, vilket inte maximerar tillgänglig parallellism, förnedrande prestanda i vissa fall. Vi föreslår en ändring av stack hårdvara där utförandet av två olika vägar kan interleaved. Även om detta är en grundläggande förändring av stackkonceptet, visar vi hur dual path utförande kan genomföras med endast blygsamma förändringar av nuvarande hårdvara och att parallellism ökas utan att offra optimal (strukturerad) kontroll-flöde återvändsgränd. Vi gör en detaljerad utvärdering av en uppsättning riktmärken med olika kontrollflöde och visar att den dubbelriktade stackarkitekturen är mycket mer robust jämfört med tidigare tillvägagångssätt för att öka vägparallalismen. Dual-path utförande antingen matchar prestandan för baslinje en-path stack arkitektur eller överträffar en-path utförande med 14,9 % i genomsnitt och med över 30 % i vissa fall.
Författarna föreslog också en dubbelriktad genomförandemodell (REF) för att möjliggöra interleaded exekvering av två olika vägar.
The dual-path execution model for efficient GPU control flow
{'venue': '2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA)', 'journal': '2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA)', 'mag_field_of_study': ['Computer Science']}