Bringing C++AMP Beyond Windows via CLANG and LLVM

Bringing C++AMP Beyond Windows via CLANG and LLVM

We are happy to report after some great work of MultiCoreWare in conduction with support from AMD and Microsoft today we are releasing a C++ AMP compiler based on CLANG/LLVM so we can bring C++ AMP to multiple platforms. We want to bring this out early so we could work with the community to make sure we get there input prior to make this 1.0. So we calling all developers who are looking for heterogeneous C++ compiler to help with finding bug, driving feature, creating optimization as well building applications and libraries drive new class of applications.

FEATURES:
* Compiles C++AMP to OpenCL C and Khronos Group Provisional SPIR 1.2 for Linux. Works across major GPU platforms.
* Leverages GMAC for CPU-GPU synchronization on non-HSA GPUs.

TODOs/Ongoing works:
* Fix SPIR code generation issue. Right now system headers do not flow thru SPIR path and that causes host code to fail compilation.
* HSAIL code generation and HSA-optimized layout
* Passing MS C++AMP conformance suite
* Async API
* Better address space support — right now small changes to user code are required when taking/passing a pointer to local memory buffers. See samples for details.
* Merge into official Clang main line

Remember C++ AMP already has rich set of libraries which Microsoft has released under Apache License.