Ahead-of-time (AOT) compilation of kernels.
Native X86/X64 & SIMD CPU runtime.
Vulkan support via SPIR backend.
Initial support for classes and lambda functions in GPU kernels.
Specialization of kernels via dynamic partial evaluation.
Dynamic partial evaluation and specialization of kernels.
Initial support for lambda functions in GPU kernels.
Limited support for class types in GPU kernels.
Native kernel debugging and profiling on GPU hardware.
Polished and enhanced version of the public beta v0.0.4-beta.
Updated IR for enhanced code generation and easier verification.
Implementing feedback from the community.
Release v0.4.0 Beta
Public Beta Version. New Intermediate Representation (IR), code-transformation phases and backends.
Cross platform support.
Cross platform support without any native dependencies.
Required code-transformation and code-generation phases for NVIDIA GPUs.
Novel Intermediate Representation (IR) for all ILGPU programs.
LLVM dependency for code generation will be removed.
New caching concept and .Net Standard 2.0 support.
Support for selected Linux distributions via build scripts and support for portable PDB debug symbols.
New caching concept to simplify programming.
Support for selected linux distributions via custom build scripts.
Basic support for portable PDB debug symbols. Enhanced compiler error messages based on detailed debug information.
.Net Standard 2.0 support for full flexibility and cross-platform support.
New support for .Net Core 2.0, convenient kernel loading & caching.
Convenient kernel loading and caching.
New support for .Net Core 2.0. This allows users of the ILGPU compiler to compile and run their kernels on a huge variety of different target platforms in the future.
However, the native dependencies have to be adjusted as well.
In order to support new LLVM versions in the future, the LLVMSharp dependency (which is bound to LLVM 3.9.X) will be removed.
It will be replaced by custom LLVM bindings.
Version 0.1.X releases.
Different bug-fix releases based on the main features of the initial ILGPU version.
However, version 0.1.4 (which was released in August) will be the last release of this release series.
The next release series will be 0.2.X that contains new features.
Initial Public Release v0.1
Initial public release on GitHub and Nuget.
This version contains all required JIT compilation features, a full featured CPU runtime and a PTX backend.
The non-public development start was in 2016.
Different developers used and tested ILGPU during the initial development phase.
Their feedback and suggestions were taken into account and considerably influenced the development.
Special thanks to Christian Hauck and Denis Müller.