llvm-project/parallel-libs/streamexecutor
Justin Lebar b9e51397bf [StreamExecutor] Make SE work with an in-tree LLVM build.
Summary:
With these changes, we can put parallel-libs within llvm/projects and
build as normal.

This is kind of the minimal change I could figure out how to make while
still making us compatible with llvm's build system.  Some things I'm
not thrilled about include:

 * The creation of a CoreTests directory (the macros really seemed to
   want this)

 * Pulling SimpleHostPlatformDevice.h into CoreTests.  It seems to me
   this should live inside unittests/include, or maybe tests/include,
   but I didn't want to make that change in this patch.

One important piece of work that remains to be done is to make

  $ ninja check-streamexecutor

run all the tests.  Right now the only way I've figured out to run the
tests is

  $ ninja projects/parallel-libs/streamexecutor/unittests/StreamExecutorUnitTests
  $ projects/parallel-libs/streamexecutor/unittests/CoreTests/CoreTests

Reviewers: jhen

Subscribers: beanz, parallel_libs-commits, jprice

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

llvm-svn: 281091
2016-09-09 21:01:02 +00:00
..
examples [SE] Doc tweaks 2016-09-02 17:59:12 +00:00
include/streamexecutor [SE] Add getName method to Device class 2016-09-07 22:26:20 +00:00
lib [StreamExecutor] Make SE work with an in-tree LLVM build. 2016-09-09 21:01:02 +00:00
tools/streamexecutor-config Add streamexecutor-config 2016-09-08 16:12:33 +00:00
unittests [StreamExecutor] Make SE work with an in-tree LLVM build. 2016-09-09 21:01:02 +00:00
CMakeLists.txt [StreamExecutor] Make SE work with an in-tree LLVM build. 2016-09-09 21:01:02 +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.