[cfe-dev] RFC: Proposing an LLVM subproject for parallelism runtime and support libraries

C Bergström via cfe-dev cfe-dev at lists.llvm.org
Wed Mar 9 15:58:13 PST 2016

On Thu, Mar 10, 2016 at 4:30 AM, Jason Henline via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
> At Google we're doing a lot of work on parallel programming models for CPUs,
> GPUs and other platforms. One place where we're investing a lot are parallel
> libraries, especially those closely tied to compiler technology like runtime
> and math libraries. We would like to develop these in the open, and the
> natural place seems to be as a subproject in LLVM if others in the community
> are interested.
> Initially, we'd like to open source our StreamExecutor runtime library,
> which is used for simplifying the management of data-parallel workflows on
> accelerator devices and can also be extended to support other hardware
> platforms. We'd like to teach Clang to use StreamExecutor when targeting
> CUDA and work on other integrations, but that makes much more sense if it is
> part of the LLVM project.

Sounds like a neat project!

Some side questions to help with perspective
1) How well does this align with what the C++ standard is doing for
accelerator parallelism?
2) Do you have any benchmarks showing how much it costs to use this
wrapper vs bare cuda
3) What sort of changes would exactly be needed inside clang/llvm to
make it do what you need
4) How is this different from say Thrust, AMD's wrapper libs, Raja.. etc
5) Does it handle collapse, reductions and complex types?
6) On the CPU side does it just lower to pthreads?

More information about the cfe-dev mailing list