"StarPU is a software tool aiming to allow programmers to exploit the
computing power of the available CPUs and GPUs, while relieving them
from the need to specially adapt their programs to the target machine
and processing units.
At the core of StarPU is its run-time support library, which is
responsible for scheduling application-provided tasks on heterogeneous
CPU/GPU machines. In addition, StarPU comes with programming language
support, in the form of extensions to languages of the C family (C Extensions), as well as an OpenCL front-end (SOCL OpenCL Extensions).
StarPU's run-time and programming language extensions support a
task-based programming model. Applications submit computational tasks,
with CPU and/or GPU implementations, and StarPU schedules these tasks
and associated data transfers on available CPUs and GPUs. The data that a
task manipulates are automatically transferred among accelerators and
the main memory, so that programmers are freed from the scheduling
issues and technical details associated with these transfers.
StarPU takes particular care of scheduling tasks efficiently, using well-known algorithms from the literature (Task Scheduling Policy).
In addition, it allows scheduling experts, such as compiler or
computational library developers, to implement custom scheduling
policies in a portable fashion (Defining A New Scheduling Policy).
http://starpu.gforge.inria.fr/
A Case Study on Programming Heterogeneous Multi-GPU with StarPU Library - http://on-demand.gputechconf.com/gtc/2016/posters/GTC_2016_Tools_and_Libraries_TL_01_P6104_WEB.pdf
No comments:
Post a Comment