Abstract | ||
---|---|---|
Heterogeneous computing has become popular in the past decade. Many frameworks have been proposed to provide a uniform way to program for accelerators, such as GPUs, DSPs, and FPGAs. Among them, an open and royalty-free standard, OpenCL, is widely adopted by the industry. However, many OpenCL-enabled accelerators and the standard itself do not support preemptive multitasking. To the best of our knowledge, previously proposed techniques are not portable or cannot handle ill-designed kernels (the codes that are executed on the accelerators), which will never ever finish. This paper presents a framework (called CLPKM) that provides an abstraction layer between OpenCL applications and the underlying OpenCL runtime to enable preemption of a kernel execution instance based on a software checkpointing mechanism. CLPKM includes (1) an OpenCL runtime library that intercepts OpenCL API calls, (2) a source-to-source compiler that performs the preemption-enabling transformation, and (3) a daemon that schedules OpenCL tasks using priority-based preemptive scheduling techniques. Experiments demonstrated that CLPKM reduced the slowdown of high-priority processes from 4.66x to 1.52–2.23x under up to 16 low-priority, heavy-workload processes running in the background and caused an average of 3.02–6.08x slowdown for low-priority processes. |
Year | DOI | Venue |
---|---|---|
2019 | 10.1016/j.sysarc.2019.06.008 | Journal of Systems Architecture |
Keywords | Field | DocType |
GPGPU,OpenCL,Preemption,Software checkpointing | Preemption,Computer science,Parallel computing,Symmetric multiprocessor system,Compiler,Software,Runtime library,Schedule,Abstraction layer,Daemon | Journal |
Volume | ISSN | Citations |
98 | 1383-7621 | 2 |
PageRank | References | Authors |
0.38 | 0 | 2 |
Name | Order | Citations | PageRank |
---|---|---|---|
Ming-Tsung Chiu | 1 | 2 | 0.38 |
Yi-Ping You | 2 | 143 | 12.89 |