Den beräkningskraft som tillhandahålls av många huvudenheter för grafikbearbetning (GPU) har utnyttjats i många tillämpningar. De programmeringsmetoder som för närvarande används för dessa GPU:er är inte tillräckliga för att ta itu med problem som uppvisar oregelbunden och obalanserad arbetsbörda. Problemet förvärras när man försöker utnyttja flera GPU samtidigt, som är allmänt tillgängliga i många moderna system. I detta dokument föreslår vi en uppgiftsbaserad dynamisk belastningsbalanslösning för enskilda och multi-GPU-system. Lösningen möjliggör belastningsbalansering vid en finare granularitet än vad som stöds i nuvarande GPU programmeringsAPI, såsom NVIDIA:s CUDA. Vi utvärderar vår strategi med hjälp av både mikro-benchmarks och en molekylär dynamik applikation som uppvisar betydande belastningsobalans. Experimentella resultat med en enkel-GPU konfiguration visar att vår finkorniga uppgift lösning kan utnyttja hårdvaran mer effektivt än CUDA schemaläggaren för obalanserad arbetsbelastning. På multi-GPU-system uppnår vår lösning nästan linjär speedup, belastningsbalans och betydande prestandaförbättringar jämfört med tekniker baserade på standard CUDA API:er.
Chen och Al. REF föreslog en aktivitetsplanerare som kunde uppnå dynamisk belastningsbalansering vid en finare granularitet än vad som stöds i CUDA.
Dynamic load balancing on single- and multi-GPU systems
{'venue': '2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)', 'journal': '2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)', 'mag_field_of_study': ['Computer Science']}