llvm-project/parallel-libs/streamexecutor
Jason Henline 6bfc863d74 [SE] Add CUDA platform
Summary:
Basic CUDA platform implementation and cmake infrastructure to control
whether it's used. A few important TODOs will be handled in later
patches:

* Log some error messages that can't easily be returned as Errors.
* Cache modules and kernels to prevent reloading them if someone tries to
  reload a kernel that's already loaded.
* Tolerate shared memory arguments for kernel launches.

Reviewers: jlebar

Subscribers: beanz, mgorny, jprice, jlebar, parallel_libs-commits

Differential Revision: https://reviews.llvm.org/D24538

llvm-svn: 281524
2016-09-14 19:58:34 +00:00
..
examples [SE] Pack global dev handle addresses 2016-09-13 23:59:10 +00:00
include/streamexecutor [SE] Add CUDA platform 2016-09-14 19:58:34 +00:00
lib [SE] Add CUDA platform 2016-09-14 19:58:34 +00:00
tools/streamexecutor-config Add streamexecutor-config 2016-09-08 16:12:33 +00:00
unittests [SE] Pack global dev handle addresses 2016-09-13 23:59:10 +00:00
CMakeLists.txt [SE] Add CUDA platform 2016-09-14 19:58:34 +00:00
Doxyfile.in Add streamexecutor-config 2016-09-08 16:12:33 +00:00
README.txt
customdoxygen.css [SE] Doc tweaks 2016-09-02 17:59:12 +00:00

README.txt

StreamExecutor
==============

StreamExecutor is a wrapper around CUDA and OpenCL (host-side) programming
models (runtimes). This abstraction cleanly permits host code to target either
CUDA or OpenCL devices with identically-functioning data parallel kernels. It
manages the execution of concurrent work targeting the accelerator, similar to a
host-side Executor.

This version of StreamExecutor can be built either as a sub-project of the LLVM
project or as a standalone project depending on LLVM as an external package.