Hybridizer Essentials is a compiler targeting CUDA-enabled GPUS or x86 SIMD instruction sets from .Net.
Altimesh Hybridizer Essentials
Hybridizer Essentials is a compiler targeting CUDA-enabled GPUS or x86 AVX/AVX2/AVX512 instruction sets from .Net. Using parallelization patterns, such as Parallel.For, or ditributing parallel work by hand, the user can benefit from the compute power of GPUS or CPUs without entering the learning curve of CUDA or SIMD instruction sets, all within Visual Studio.
Installer has changed. Uninstall previous version before installing this one.
We don't support the entire C# language or .Net Framework. Main known limitations are
Heap allocation (new A()) from device thread (except for arrays)
System.Collection is not supported
virtual generic functions are not supported
string type is only partially supported (they must be const)
Visual studio latest C++ toolset (v141) and CUDA 9.0/9.1/9.2 are not compatible. To compile CUDA code with Visual studio 2017 or 2019, you need to install and use v140 toolset (visual 2015), or CUDA 10.0 or 10.1. This is enforced in our project templates.
SharedMatrix and cublas samples can fail on windows 8.1 for unknown reason.
Debugging and profiling
If debug information is available, the debugging can be performed from within the development environment, while running the optimized code on the target hardware; for example, a program written in C#, with a breakpoint in the cs file within Visual Studio can have that breakpoint hit and its local variables and object data explored while execution occurs on an NVIDIA GPU (see snapshot).
While providing automated default behavior, Hybridizer leaves full control to the developer at each phase, allowing the reuse of existing device-specific code, use of existing external libraries or custom handmade code snippets.
All of this flexibility does not come at the expense of performances loss. As our benchmark illustrate, code generated by the Hybridizer can perform as well as hand-written code.