Examples of C# code compiled to GPU by hybridizer
CUDA 10 basic support : no cudaGraph_t no grid-wide synchronization
better error reporting
more early exit on unsupported code paths.
many bug fixes about generic code
bug fixes about Func<>
We introduced support of AVX* instruction sets for Intel/AMD CPUs. You can keep the same C# code and target your CPU instead of your NVIDIA GPU. All the code and binaries are deployed, but you'll need a special license to use them. For now, those license are reserved to special customers. You can read more about that in our blog post. This is a very large feature, so it's still in beta with restricted access.
Commercial licenses
You can purchase commercial licenses from our website
Command line tool
Our command line tool has been massively improved. It's been renamed hybcc.exe on windows, and just hybridizer on linux. It now supports:
- project files : hybridizer MyProj.csproj -run
- all target flavors : hybridizer Main.cs -flavor [CUDA]/AVX/AVX2/AVX512 -run
- openmp for CPU targets : hybridizer Main.cs -flavor AVX -fopenmp -run
- verbose mode
We added new notebooks and completed existing. See them in our github!
New in this version
Today we are proud to publish Hybridizer Essentials for Linux as a public beta.
We introduce some new features, so far only available in this beta, such as:
SetDistrib
and SetStream
can be called on the wrapped object instead of HybRunner
.
This leads to more CUDA-like code, such aswrapped.SetDistrib(32, 256).SetStream(myStream).myKernel(args...)
cuda.ERROR_CHECK
function simplifies error checking whith CUDA API calls.cuda.ERROR_CHECK(cuda.Malloc(out ptr, size)) // aborts and prints line and file
hybridizer-cuda
command line tool, which allows user to compile and run a C# file without writing any project or Makefilesudo dpkg -i hybridizer-essentials-amd64-1.0.6151.9352.deb
/opt/altimesh/hybridizer-essentials/bin/RequestLicense.exe
using Hybridizer.Runtime.CUDAImports;
using System;
namespace Test
{
class Program
{
[EntryPoint]
public static void Hello()
{
Console.Out.WriteLine("Hello From GPU");
}
static void Main(string[] args)
{
dynamic wrapped = HybRunner.Cuda().Wrap(new Program());
wrapped.SetDistrib(1, 1).Hello();
}
}
}
/opt/altimesh/hybridizer-essentials/bin/hybridizer-cuda -o Test.exe Test.cs -run
Hello From GPU
New in this version
Warning/Disclaimer
We don't support the entire C# language or .Net Framework. Main known limitations are
Release notes • Linux version available in beta • Automatic null-checks (see below) • Improved error reporting (errors point to csharp code) • Better error granularity to help identify issues • Faster kernel startup with improved runtime • Samples reworking : one solution per CUDA version. We removed Visual Studio version specific solutions and merged all projects • Improved conditions management • Default grid configuration to { 16 x multiProcessorCount, 128 }
Attached is a truecrypt containing linux binaries. Contact us to get the key if you want to join the preview.
New in this version
Known issues
Rename Zip file to VSIX to install it in visual studio, or get it directly from https://marketplace.visualstudio.com/items?itemName=altimesh.AltimeshHybridizerExtensionEssentials
New features:
Fixes:
In this release we added support of CUDA 9.1. Warning : Visual Studio 2017 breaks CUDA support in its latest update (15.5.3). To workaround that, change toolset from v141 to v140 (needs visual 2015 to be installed).
There are three main directories
HybridizerBasicSamples : CUDA 8 samples
HybridizerBasicSamples_CUDA9 : CUDA 9 samples
HybridizerBasicSamples_CUDA91 : CUDA 9.1 samples
These directories contain visual studio solutions, postfixed by visual studio version, such as "HybridizerBasicSamples.vs2013.sln".
First install the Visual Studio extension from marketplace.
After having checked the prerequisites, you can build and run the solution of your choice.