RFC: Proposing an LLVM subproject for parallelism runtime and support libraries

Hi Jason,

I’m trying to better understand your StreamExecutor proposal and how it relates to other parallel programming models and runtimes such as RAJA [1], KOKKOS [2], or some hypothetical SPARK C++ API.

Please correct me if I’m misunderstanding your proposal, but I think the essence of what you want from the compiler is type safety for accelerator kernel launches, i.e., you would like the frontend to parse, check, and codegen for the construct:
add_mystery_value<<<1, 1>>>(kernel_input_argument, *result.ptr());

Is that a correct understanding?


[1] http://computation.llnl.gov/projects/raja-managing-application-portability-next-generation-platforms
[2] https://github.com/kokkos/kokkos