AForge is a popular .Net library for image processing and computer vision. It features a lot of image filters, noise generators, or other image-related algorithms. Since it’s written in C#, and given the very parallel nature of most of image processing algorithms, we tried to hybridize some of them. AForge code make heavy use of […]

READ MORE

Tags: , ,


It’s often useful to use intrinsics or builtin functions provided by CUDA. You might also already have a very optimized cuda header which you’d like to reuse from your C# application. This can be done using IntrinsicFunction attribute. When generating the source code, the function call is replaced by the IntrinsicFunction name, and the contents […]

READ MORE

Tags: ,


Our hello world is the addition of two vector of elements. The C# code is downloadable from our github. Hello World : simple work distribution We start with a simple way to express parallelism: the Parallel.For construct, which is natively proposed by .Net. We place the EntryPoint attribute on the method tro trigger hybridization: [EntryPoint] […]

READ MORE

Tags: ,


A wide variety of image processing algorithms are typically parallel. However, depending on filter-size or neighborhood search pattern, memory access is critical for performances. We’ll show how loop reordering and memory locality fine-tuning help achieve best performance. Using Hybridizer to automate Java byte-code transformation to CUDA source code, and using new CUDA feature Run Time […]

READ MORE

Tags: , ,