FYI

Traditional APIs–Kernels written in C++, with C# (or NET) API

API Last Updated Open source? Cost? Install type GPU target GPU software? Documentation?
Cloo 19-12-2012; Inactive Yes Free SourceForge Download OpenCL supported devices. I assume 1.2 devices, although Enums.cs does not have OpenCLVersion  updated for 1.2. It has not been updated for 2.0 devices. Drivers for OpenCL devices installed. Negligible
CSCuda 29-Sep-2016; Inactive Yes Free Nuget NVIDIA CUDA NVIDIA GPU Toolkit 8. None
ManagedCUDA 2-Jun-2017; As far as I know, Kunzmi still is supporting this, but it’s behind the latest CUDA GPU Toolkit; (Maybe wisely behind.) Yes Free Nuget Various NVIDIA CUDA Requires NVIDIA GPU Toolkit 8 or less; not ported to GPU T.K. v9. Minimal
OpenCL.NET 23-10-2013; Inactive Yes Free Nuget OpenCL supported devices. I assume 1.2. Drivers for OpenCL devices installed. Negligible
Swigged.CUDA 9-Nov-2017 Yes Free Nuget Various NVIDIA CUDA Requires NVIDIA GPU Toolkit 9 Minimal

Notes:

  • There are other APIs which one could use, but they appear specialized or part of another tool, so may not be suitable.
  • There are forked versions of Cloo which have been updated versions on Github, but I have not found anything that has changed in the last year.

 

CIL (NET language) Compilers

API Last Updated Open source? Cost? Install type Compiler type Targets Documentation?
Campy Dec-2017 Yes Free Nuget JIT. LLVM CUDA version 9 None
Cudafy  4-Aug-2015; Inactive Yes Free Nuget JIT. Decompiler of CIL; converter to  C++/CUDA source; Compilation via NVCC CUDA version 7  
Alea GPU ~Oct-2017 No $$$ Nuget JIT. LLVM (NVVM)    
CudaSharp 29-Jan-2014; Inactive Yes Free N.A. JIT. LLVM NVIDIA GPU  
Altimesh Dec-2017 No Website says “free”. However, a  license is required, and the license expires after a month or so. Visual Studio Marketplace AOT GPU, CPU Install-Good; API–Poor documentation of assembly Hybridizer.Runtime.CUDAImports API. Unclear whether “EntryPoint” can only contain one Parallel.For or one for-loop. The website says it is free, but the license must be renewed. Consequently, it’s difficult to investigate this product.
GpuLinq 6-Apr-2015; Inactive Yes Free       Note: Build using GpuLinq.sln fails–LinqOptimizer,CSharp problem, which in itself does not build. Hasn’t bee update for a long, long time.
ILGPU Mar 4, 2018. Unclear status: release of 0.3 to NuGet, but Git repository code does not have the changes corresponding to the release. Yes Free Nuget LLVM CUDA GPU, CPU API–Good.
Brahma 10-Nov-2017 Yes Free   Converts to OpenCL source.    

This list contains only projects that have either source code for building the product from scratch, or a download available. Other projects exist, but I cannot find either source or download.

CIL (NET language) Compilers–Language Features

 

API Requires Attributed C# (or other NET language) Data containers for CPU/GPU Global memory Value Types Supported Reference Types Supported Generics Supported
Campy No No–seemless C# data structures. Yes Yes Yes
Alea GPU No No–seemless C# data structures. Yes No Yes
Altimesh Unclear. Kernel code appears as lambda in Parallel.For() call. However, attributes are often used, “[EntryPoint]”. No–seemless C# data structures. Additional structures provided, but unclear why.

 

Yes Yes Yes
ILGPU Yes Yes. Data must be placed in a container, e.g., ArrayView. Yes No Yes

Last updated May 15, 2018.