Abstract-Graphics processenheter (GPU) har i stor skala använts som acceleratorer i heterogena datorsystem. Nuvarande programmeringsmodeller kan dock endast stödja utnyttjandet av lokala GPU:er. Vid användning av icke-lokala GPU, programmerare behöver uttryckligen ringa API-funktioner för datakommunikation över datornoder. Som sådan, programmering GPU:er i storskaliga datorsystem är mer utmanande än lokala GPU:er eftersom lokala och fjärr GPU:er måste hanteras separat. I detta arbete föreslår vi en virtuell ram för OpenCL (VOCL) för att stödja den transparenta virtualiseringen av GPU:er. Detta ramverk, baserat på OpenCL-programmeringsmodellen, avslöjar fysiska GPU:er som frikopplade virtuella resurser som kan hanteras på ett öppet sätt oberoende av programmets genomförande. För att minska virtualiseringen över huvud taget optimerar vi GPU-minnet och lanseringen av kärnan. Vi utökar också VOCL-ramverket för att stödja live-uppgiftsmigrering över fysiska GPU:er för att uppnå belastningsbalans och/eller snabbt systemunderhåll. Våra experimentresultat indikerar att VOCL i hög grad kan förenkla uppgiften att programmera klusterbaserade GPU till en rimlig virtualiseringskostnad. Keywords-graphics processing unit (GPU), virtuell OpenCL, uppgiftsmigrering I. INLEDNING Idag har tillväxthastigheten för den beräkningskraft som krävs för vissa vetenskapliga beräkningar överträffat den för beräkningskapaciteten hos traditionella processorer. Å andra sidan har vinster i beräknings hästkrafter genom att öka klockhastigheten träffat en vägg i mitten av 2000-talet på grund av tillverkningsprocessen och makt / läckage begränsningar. Följaktligen måste man förlita sig på parallellism för att förbättra beräkningsprestandan. På hårdvarunivå, prestandaförbättringar har drivits genom att öka antalet kärnor per processor, vilket gäller både traditionella x86 multicore processorer och många-kärniga GPU processorer. Dessa multi-och många core processorer i sin tur har aggregerats till beräkning noder, som sedan aggregeras till kluster superdatorer. GPU:er har ursprungligen utformats enbart för grafikbearbetning och har utvecklats till programmerbara processorer för beräkning av allmänna ändamål. Med parallella programmeringsmodeller som CUDA [10] och OpenCL [7], har programmerings-GPUs blivit enklare än någonsin. Många tillämpningar har nu parallelliserats på GPU, och betydande prestandaförbättringar har rapporterats [11]. Nuvarande GPU-programmeringsmodeller stöder dock endast användningen av GPU:er som installerats lokalt. När ett program behöver använda GPU som inte är lokalt installerade bör API-funktioner som TCP-uttag och Message Passing Interface (MPI) [8] uttryckligen kallas för att hantera datakommunikation
Virtual OpenCL REF, baserat på OpenCL-programmeringsmodellen, exponerar fysiska GPU:er som frikopplade virtuella resurser som kan hanteras på ett transparent sätt oberoende av programmets utförande.
Generalizing the Utility of GPUs in Large-Scale Heterogeneous Computing Systems
{'venue': '2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum', 'journal': '2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum', 'mag_field_of_study': ['Computer Science']}