Cooperative kernels: GPU multitasking for blocking algorithms
File(s)paper.pdf (727.27 KB)
Accepted version
Author(s)
Sorensen, T
Evrard, H
Donaldson, AF
Type
Conference Paper
Abstract
There is growing interest in accelerating irregular data-parallel
algorithms on GPUs. These algorithms are typically
blocking
, so
they require fair scheduling. But GPU programming models (e.g.
OpenCL) do not mandate fair scheduling, and GPU schedulers are
unfair in practice. Current approaches avoid this issue by exploit-
ing scheduling quirks of today’s GPUs in a manner that does not
allow the GPU to be shared with other workloads (such as graphics
rendering tasks). We propose
cooperative kernels
, an extension to
the traditional GPU programming model geared towards writing
blocking algorithms. Workgroups of a cooperative kernel
are
fairly
scheduled, and multitasking is supported via a small set of language
extensions through which the kernel and scheduler cooperate. We
describe a prototype implementation of a cooperative kernel frame-
work implemented in OpenCL 2.0 and evaluate our approach by
porting a set of blocking GPU applications to cooperative kernels
and examining their performance under multitasking.
algorithms on GPUs. These algorithms are typically
blocking
, so
they require fair scheduling. But GPU programming models (e.g.
OpenCL) do not mandate fair scheduling, and GPU schedulers are
unfair in practice. Current approaches avoid this issue by exploit-
ing scheduling quirks of today’s GPUs in a manner that does not
allow the GPU to be shared with other workloads (such as graphics
rendering tasks). We propose
cooperative kernels
, an extension to
the traditional GPU programming model geared towards writing
blocking algorithms. Workgroups of a cooperative kernel
are
fairly
scheduled, and multitasking is supported via a small set of language
extensions through which the kernel and scheduler cooperate. We
describe a prototype implementation of a cooperative kernel frame-
work implemented in OpenCL 2.0 and evaluate our approach by
porting a set of blocking GPU applications to cooperative kernels
and examining their performance under multitasking.
Date Issued
2017-08-21
Date Acceptance
2017-06-02
Citation
ESEC/FSE 2017 Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, 2017
ISBN
978-1-4503-5105-8
Publisher
ACM
Journal / Book Title
ESEC/FSE 2017 Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
Copyright Statement
© 2017 Copyright held by the owner/author(s). Publication rights licensed to Association
for Computing Machinery. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was is available at http://dl.acm.org/citation.cfm?doid=3106237.3106265
for Computing Machinery. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was is available at http://dl.acm.org/citation.cfm?doid=3106237.3106265
Source
11th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2017
Publication Status
Published
Start Date
2017-09-04
Finish Date
2017-09-08
Coverage Spatial
Paderborn, Germany