Alea.cuBase is a complete solution to develop CUDA accelerated GPU applications on the .NET framework.

It relies on Microsoft’s new functional language F# to generate highly optimized CUDA code.

Use the simple yet flexible framework of Alea.cuBase to build robust and extendable GPU code, callable from any other .NET language.

Alea.cuBase cuts your project risks by reducing the software complexity, development time and the deployment effort of your GPU applications.

Integrate GPU code with other .NET components to a fully managed .NET solution. No wrapper or interoperation code is required. Profit from a rich set of .NET containers and a large collection of libraries. Interoperate with other .NET languages, Python or Matlab.

Take advantage of GPU resources such as texture, shared memory, constant memory, special device functions and pointer operations to develop fine-grained parallel algorithms, or to migrate your existing CUDA C code. A well designed GPU programming interface simplifies the thread safe management of multiple GPU devices, memory and stream.

Use the CUDA monad as a solid and flexible framework to specify GPU resources and kernel launch logics in a unified manner. Reuse well tested kernel code and GPU resources in CUDA monads and compose them to more complex yet robust parallel algorithm.

Generate CUDA kernels dynamically and compile them at run time to executable GPU code. Use .NET generic types and splicing of code quotations to make GPU algorithms more versatile. Rely on dynamic code generation as the foundation for GPU aware interactive domain specific languages. Compile kernels in stages and store the intermediate LLVM IR or PTX code as binary resources for faster reloading or redistribution.

Simplify development and deployment and start with GPU coding right away, without first installing the NVIDIA compiler tools. Speed up the creation of new parallel algorithms with prototyping inside the F# interactive or with F# scripting. Improve your coding productivity and quality with the aid of F# type inference and advanced IDE support. Use additional tools such as Nsight or the built-in occupancy calculator to produce robust, high quality applications.

Produce performance optimized code, executing at the same speed as compiled CUDA C/C++ code. Easily control code compilation for performance tuning, such as to generate different PTX versions according to the architecture of the device, or toggling fast math or other details.