Campy Releases

NB: It is best to use NuGet package add to install Campy. E.g.,  dotnet add package Campy

Current — always available at


  • See Campy blog for notes on the release.
  • September 2, 2018


  • Fixings for callvirt and box CIL instructions.
  • Fixes for strings.
  • Added debugging output of data structures copied to/from CPU.
  • Rewritten data structure copy to/from CPU methods.
  • Fixed arrays, multi-dimensioned arrays, jagged arrays.
  • Upgrade from Net Core 2.0 to 2.1. Net Core 2.0 not supported (MS says it’s not LTS).
  • Fixed numerous problems in substitution of BCL types and methods.
  • Fixed System.Char issue.
  • Hacked fixed for “Too many resources requested for launch” from CUDA.
  • Most unit tests now work, except FFT.
  • Much clean up and refactoring.
  • See blog post.
  • July 6, 2018


  • Many fixes to the GPU BCL and the compiler.
  • Compiles and runs steepest descent example, which uses generics, operators, multiple Parallel.For(), classes, references, doubles, on both Ubuntu and Windows, and NET Core and Framework.
  • See the blog post.
  • June 14, 2018


  • Many fixes to the GPU BCL.
  • Strings and generics working again.
  • See the blog post.
  • June 8, 2018


  • Many fixes to the GPU BCL based from DotNetAnywhere, including type forwarding, additional ECMA 335 metadata table types, enhancements to the memory allocation subsystem.
  • See
  • May 20, 2018


  • Added Ubuntu 16.04 target with Net Core. Use “dotnet publish -r ubuntu.16.04-x64” to build your app.
  • Added support for enums.
  • Fixed a performance issue in CIL discovery.
  • Fixed type initialization in GPU BCL.
  • See for additional information.
  • May 3, 2018


  • Fixes line-oriented debugging in Nsight of kernel (lambda) code.
  • Fixes Net Core target. Use “dotnet publish -r win10-x64” to build your app.
  • Fixes object allocation to use GPU BCL.
  • See for additional information.
  • April 18, 2018


  • Implement line debugging of kernel code (4c15bda). Note, you must use the “Start CUDA debugging (legacy)” menu command of the NVIDIA Nsight debugger version 5.5. Note, I cannot get the “Next Gen” debugger to work on any program. To debug, follow the instructions for Nsight. Make sure to set a breakpoint in your C# kernel code.
  • Fixing 2D arrays (1284d27).
  • Fix “ceq” instruction code generation (75b990d). In certain situations, the compiler would generate incorrect code.
  • April 4, 2018


  • Implemented “ref” parameters for methods (bb4062f)
  • Corrected the semantics of Campy.Sequential.For() (9f14e66)
  • Fixed GCHandle.Free() of an uninitialized handle (fba9328)
  • Fixed API for memory management (4ede1e1 and others)
  • Added several examples for sorting to the unit tests (CombBitonicEven/Odd)
  • March 22, 2018

v0.0.5 (replaces v0.0.3 and 4)

  • Basic GC
  • Reference types
  • Value types
  • March 9, 2018


  • Requirements: Windows 10; Visual Studio 2017 with C#
  • Download from NuGet
  • Within the Project Properties, the application must have “Prefer 32-bit” unchecked, “Allow unsafe code” checked, and use NET Framework 4.7.
  • Added compilation of simple generics and classes. May crash readily.
  • Problems in memory management and recompilation (speed) outstanding.
  • Release for demonstration purposes only.
  • Debug version only.


  • Requirements: Windows 10; Visual Studio 2017 with C#
  • Download from NuGet
  • Application must target “Prefer 32-bit” unchecked, Allow unsafe code checked, NET Framework 4.7.

v0.01.0000 Samples

  • Requirements: Campy.NET (and its requirements).
  • Showcases Campy.NET v0.01.0000 with seven different examples.


  • Requirements: Windows 8 or 10; Visual Studio Express, Pro, or Ultimate, 2013
  • Build type: debug
  • Supported: Accelerator, Accelerator_View, Array, Array_View, Atomic_Fetch_Add, Copy, Extent, Index, Parallel_For_Each, Tile_Barrier, Tiled_Extent, Tiled_Index, Tile_Static. 1D arrays of integers only.


2 thoughts on “Campy Releases

    1. The old releases do not support jagged arrays. However, with the new LLVM PTX (NVIDIA GPUs) backend that I am still writing, it should. It may require some changes to the API, or a C# library that implements it that is compiled for the GPU. I do not know when the new backend will be available, but I expect several months more work.

Leave a Reply

Your email address will not be published. Required fields are marked *