完整後設資料紀錄
DC 欄位語言
dc.contributor.authorYou, Yi-Pingen_US
dc.contributor.authorWu, Hen-Jungen_US
dc.contributor.authorTsai, Yeh-Ningen_US
dc.contributor.authorChao, Yen-Tingen_US
dc.date.accessioned2016-03-28T00:04:22Z-
dc.date.available2016-03-28T00:04:22Z-
dc.date.issued2015-08-01en_US
dc.identifier.issn0362-1340en_US
dc.identifier.urihttp://dx.doi.org/10.1145/2688500.2688505en_US
dc.identifier.urihttp://hdl.handle.net/11536/129609-
dc.description.abstractThe interest in using multiple graphics processing units (GPUs) to accelerate applications has increased in recent years. However, the existing heterogeneous programming models (e.g., OpenCL) abstract details of GPU devices at the per-device level and require programmers to explicitly schedule their kernel tasks on a system equipped with multiple GPU devices. Unfortunately, multiple applications running on a multi-GPU system may compete for some of the GPU devices while leaving other GPU devices unused. Moreover, the distributed memory model defined in OpenCL, where each device has its own memory space, increases the complexity of managing the memory among multiple GPU devices. In this article we propose a framework (called VirtCL) that reduces the programming burden by acting as a layer between the programmer and the native OpenCL run-time system for abstracting multiple devices into a single virtual device and for scheduling computations and communications among the multiple devices. VirtCL comprises two main components: (1) a front-end library, which exposes primary OpenCL APIs and the virtual device, and (2) a back-end run-time system (called CLDaemon) for scheduling and dispatching kernel tasks based on a history-based scheduler. The front-end library forwards computation requests to the back-end CLDaemon, which then schedules and dispatches the requests. We also propose a history-based scheduler that is able to schedule kernel tasks in a contention-and communication-aware manner. Experiments demonstrated that the VirtCL framework introduced a small overhead (mean of 6%) but outperformed the native OpenCL run-time system for most benchmarks in the Rodinia benchmark suite, which was due to the abstraction layer eliminating the time-consuming initialization of OpenCL contexts. We also evaluated different scheduling policies in VirtCL with a real-world application (clsurf) and various synthetic workload traces. The results indicated that the VirtCL framework provides scalability for multiple kernel tasks running on multi-GPU systems.en_US
dc.language.isoen_USen_US
dc.subjectDesignen_US
dc.subjectManagementen_US
dc.subjectExperimentationen_US
dc.titleVirtCL: A Framework for OpenCL Device Abstraction and Managementen_US
dc.typeArticleen_US
dc.identifier.doi10.1145/2688500.2688505en_US
dc.identifier.journalACM SIGPLAN NOTICESen_US
dc.citation.volume50en_US
dc.citation.spage161en_US
dc.citation.epage172en_US
dc.contributor.department資訊工程學系zh_TW
dc.contributor.departmentDepartment of Computer Scienceen_US
dc.identifier.wosnumberWOS:000367254800016en_US
dc.citation.woscount0en_US
顯示於類別:期刊論文