Att stödja dynamisk parallellism är viktigt för att GPU ska kunna dra nytta av ett brett spektrum av tillämpningar. Det finns för närvarande två grundläggande sätt för program att utnyttja dynamisk parallellism på GPU: en mjukvarubaserad strategi med programvaruhanterade arbetslistor, och en hårdvarubaserad strategi genom dynamiska subkernel lanseringar. Det är inte heller tillfredsställande. Den förra är komplicerad att programmera och är ofta föremål för någon belastning obalans; den senare lider av stora runtime overhead. I detta arbete föreslår vi gratis lansering, en ny programvarustrategi för att övervinna bristerna i båda metoderna. Det gör det möjligt för programmerare att använda subkernel lanseringar för att uttrycka dynamisk parallellism. Den använder en ny kompilatorbaserad kodtransformering som heter Subkernel lansering borttagning för att ersätta subkärnan lanserar med återanvändning av modertrådar. Tillsammans med en adaptiv uppgiftstilldelningsmekanism överför omvandlingen uppgifterna i underkärnan till överliggande trådar med en bra belastningsbalans. Tekniken kräver inga hårdvarutillägg, som omedelbart kan sättas in på befintliga GPU:er. Det håller programmeringen bekvämligheten av sub kernel lansering-baserat tillvägagångssätt samtidigt som man undviker sin stora runtime overhead. Samtidigt gör dess överlägsna lastbalansering att den överträffar manuella arbetslista-baserade tekniker med 3X i genomsnitt.
Chen och Shen REF har föreslagit en metod för borttagning av barnkärnor baserad på återanvändning av föräldratrådar.
Free launch: optimizing GPU dynamic kernel launches through thread reuse
{'venue': 'MICRO-48', 'journal': None, 'mag_field_of_study': ['Computer Science']}