Skip to content

Releases: m4rs-mt/ILGPU

Release v0.5.0

03 Jan 02:40
Compare
Choose a tag to compare

Note that this has been the first standalone compiler version without any native library dependencies.

  • Removed all native library dependencies (including LLVM).
  • Redesigned huge parts of the compiler.
  • Added conceptionally new (experiemental) IR.
  • Introduced generic data views in order to generate code for low-level (e.g. PTX) and high-level (e.g Vulkan) targets.
  • Adapted IL-Frontend to generate IR code instead of LLVM-IR.
  • Added new code-transformation phases to optimize code.
  • Added support for parallel code generation.
  • Adapted support for portable PDBs.
  • Added support for basic line-based GPU debugging and profiling.
  • Added support for jagged arrays. (Community Request)
  • Redesigned support for sub-warp shuffles. (Community Request)
  • Redesigned implicit stream launchers. (Community Request)
  • Fixed several code generation issues. (see GitHub)
  • Redesigned all required transformations and code generators.
  • Redesigned IR in order to significantly improve compilation time and memory consumption.
  • Extended kernel loaders with additional delegate overloads. (Community Request)
  • Fixed invalid loading of debug symbols from dynamic assemblies.

Release v0.3.0 [LLVM based]

03 Jan 02:38
46b853a
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

*** This release has been the last LLVM-based compiler version ***

  • Added support for .Net Standard 2.0. (Community Request)
  • Added first support for specializing kernels during compilation.
  • Updated accelerator caching functionality. (Community Request)
  • Improved multithreading support. (Community Request)
  • Added automatic disposal of kernels, memory buffers and accelerator streams. (Community Request)
  • Integrated basic support for portable PDBs.
  • Added native build scripts for Linux operating systems.
  • Added support for Linux operating systems in DLLLoader and PTXBackend.

Release v0.2.1 [LLVM based]

03 Jan 02:36
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

  • Fixed critical invalid code generation of non-zero (true) branches.

Release v0.2.0 [LLVM based]

03 Jan 02:34
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

  • Added convenient kernel loading and caching to accelerator classes.
  • Added properties to query the maximum number of threads of an accelerator.
  • Added Disposed event to Accelerator.
  • Added support for Cuda 9.0.
  • Added new cross-platform Cuda API.
  • Added integer-division operators to GPUMath.
  • Added RadToDeg and DegToRad conversion methods to GPUMath.
  • Added support for .Net Core 2.0.
  • Removed LLVMSharp dependency.
  • Enhanced SSA code generation quality.
  • Fixed invalid constant generation of padded structures.
  • Updated CompilerServices.Unsafe dependency to version 4.4.0.

Release v0.1.4 [LLVM based]

03 Jan 02:32
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

  • Fixed invalid code generation of float-based Atomic.Min/Atomic.Max functions.
  • Added support for nullable types in kernels.
  • Fixed invalid return value of atomic add in CPU mode.
  • Fixed invalid resolving of generic virtual methods in IL frontend.

Release v0.1.3 [LLVM based]

03 Jan 02:31
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

  • Fixed critical thread-divergence issues in CPUAccelerator.
  • Added additional checks to avoid group-barrier functions in implicitly grouped kernels.
  • Fixed critical issue in kernel-launcher code generation in CPUAccelerator.
  • Fixed invalid loading of double constants in Force32BitFloats mode.
  • Fixed invalid code generation of some math intrinsics (Atan, Atan2, Pow).
  • Fixed invalid view dimensions in ArrayView<T> getters.

Release v0.1.2 [LLVM based]

03 Jan 02:29
Compare
Choose a tag to compare

Note that this version is based on the LLVM compiler framework and contains native dependencies. Please use ILGPU >= v0.5 to use the platform independent ILGPU compiler version.

  • Added atomics for index types.
  • Added new debug views for generic array views in CPU mode.
  • Added additional operators to index types.
  • Added min/max functions to index types.
  • Added new clamp functions to GPUMath.
  • Added support for IntPtr.ToPointer functions.
  • Enhanced reduction interface functionality.
  • Fixed invalid ArgumentOfOfRangeException-check in MemoryBuffer.
  • Fixed critical issue in slice and row views of ArrayView3D<T> and ArrayView2D<T> structures.
  • Removed internal IL-assembly based intrinsics using the official Unsafe package.