NB: It is best to use NuGet package add to install Campy. E.g., dotnet add package Campy
Current — always available at https://www.nuget.org/packages/Campy/
- 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 http://campynet.com/?p=771
- 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 http://campynet.com/?p=597 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 http://campynet.com/?p=533 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 (Comb, Bitonic, Even/Odd)
- March 22, 2018
v0.0.5 (replaces v0.0.3 and 4)
- GPU BCL
- Basic GC
- Reference types
- Value types
- March 9, 2018
v0.0.2-alpha
- 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.
v0.0.1-alpha
- 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.
- 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.
Support jagged array ?
thank you!
craigtao
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.