Cudafy allows developers to create General Purpose GPU application completely in .NET.
Cudafy consists of four parts:
- Cudafy Library
- .NET Reflector Add-in
- Cudafy Host
- Cudafy Math
The base CUDAfy library provides GPGPU specific classes. These are essentially an object orientated .NET means of approaching CUDA. Key components are the GThread and CudafyModule classes and the Cudafy attribute. GThread is used to identify the thread, block and grid IDs of parallel code running on the GPU as well as give access to the various different memory types GPUs have (e.g. shared , global, etc). The Cudafy attribute is placed on methods, structures and constants that will be running on the GPU. CudafyModules contain generated GPU code and other information to allow easy use from the CUDAfy host classes.
CUDAfy .NET Reflector Add-in
.NET Reflector is a popular tool from Red Gate Software. This tool allows the disassembly of .NET libraries and the translation to a range of .NET languages. Hybrid DSP have created an add-in consisting of a graphical and language part. The language is NVIDIA CUDA C and the graphical add-in allows the user to sub-select classes for translation. Optionally the NVIDIA C compiler (nvcc) can be called to generate code ready for use in GPU modules. The output options are CUDAfyModules (with or without compilation, or CUDA C code.
CUDAfy Host Library
The host library permits easy interaction between host and GPU code. CudafyModules can be loaded, data can be allocated on GPU and transferred between host and GPU, and GPU functions can be launched. Allocated data is tracked by the GPU class and pointers to data are standard .NET arrays. Furthermore emulation of GPU code is fully supported meaning that the power of the .NET debugger is available.
CUDAfy Math Library
This is a .NET wrapper around the NVIDIA CUBLAS and CUFFT libraries - Basic Linear Algebra and Fourier Transform.
For more click here..