October 12, 2017

Hybridizer Essentials is out!

We’re proud to announce the release of Hybridizer Essentials, a free Visual Studio extension.

Hybridizer Essentials is a Visual Studio extension providing a full-featured Hybridizer for C#/CUDA. It allows you to write C# code, keeping focus on business logic, and letting Hybridizer generate the appropriate binary to run on the GPU.

We also released a SDK on our public github. This SDK provides examples of code, ranging from simple hello world to a more complex generic heat equation solver using MonteCarlo.

Read more


July 27, 2017

Generics

Hybridizer supports C# generics (for a long time). However, managed generics are resolved at runtime, introducing a significant performance penalty.
Hybridizer map them to C++ templates (which are resolved at compile time), therefore dramatically improving performance.
This blog post gives an example of generic code on a quite fun mathematical example.

Read more


June 21, 2017

System.Numerics.Vector and the Hybridizer

System.Numerics.Vector is a library provided by .Net (as a nuget package), which tries to leverage SIMD instruction on target hardware. It exposes a few value types, such as Vector<T>, which are recognized by RyuJIT as intrinsics. Hybridizer however delivers full SIMD instructions potential without the burden of writing vector code.

Read more


June 19, 2017

Hybridize A Large Image Processing Library

AForge is a great Image Processing and Vision .Net library.
We developed a few example applications making use of AForge and Hybridizer. Those two examples are:

  • A kernel function in application code which triggers the hybridization of AForge itself. This shows that dependencies are pulled by the Hybridizer with no user intervention. On Perlin noise code, we reach peak compute performance on a 1080 Ti.
  • Adaptive smoothing. We had to change AForge code to enable parallel processing (addresses computation). We then call it from a plain C# application code. We have therefore an hybridized library used transparently from the application code. Kernel appears to be memory-latency bound on a 1080 Ti.

Read more