@JeWaVe JeWaVe released this Jan 11, 2019 · 3 commits to master since this release

Assets 4

Minor release -- mostly bugfixes.

  • better cufft support
  • multiple bugfixes about delegates and marshalling
  • bugfix in the windows service (renew license was hanging forever for some unknown reason)
  • move to c++14 as default standard (required because of "auto return type" feature, which we use for delegates)

There is a bug (#71) in the CUDA 10.0 samples. It's now fixed in the master branch.

@JeWaVe JeWaVe released this Dec 20, 2018 · 12 commits to master since this release

Assets 4
  • Func<> improvements : support of ldvirtftn : we can now pass a virtual function as parameter
  • AtomicExpr<> : invoke any Func<T, T, T> where T is int/long/float/double
    Example : AtomicExpr.apply(ref x, y, (u, v) => Math.Max(u, v))
  • Generic Resident array for value types.
  • cusparse and curand for cuda 9.1, 9.2 and 10.0
  • value types constructors (they must be decorated with [Kernel])
  • builtin support for double.MinValue/MaxValue/Epsilon and NegativeZero
  • initonly and literal static fields are automatically [HybConstant]
  • warnings!

@JeWaVe JeWaVe released this Nov 21, 2018 · 15 commits to master since this release

Assets 4

New features:

  • Support of Func<> (up to four generic arguments)
  • Support of passing static functions, or Func<> as argument.
  • Basic support of as and is keywords
  • Linux improvements
  • hybridizer-cuda can work in any directory

Bug fixes:
#64 and #63

MSI installer logs errors and exceptions into C:\Program Files\Altimesh\Hybridizer Essentials\

Pre-release

@JeWaVe JeWaVe released this Nov 16, 2018 · 22 commits to master since this release

Assets 4

New features:

  • Support of Func<,,> (up to four generic arguments)
  • Support of passing static functions as argument.
  • Linux improvements
  • hybridizer-cuda can work in any directory

An attempt fo fix #64 and #63

MSI installer logs errors and exceptions into C:\Program Files\Altimesh\Hybridizer Essentials\

@JeWaVe JeWaVe released this Oct 30, 2018 · 23 commits to master since this release

Assets 4
  • 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<>

@JeWaVe JeWaVe released this Sep 17, 2018 · 35 commits to master since this release

Assets 4
  • AVX/AVX2/AVX512 support!

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

  • Notebooks

We added new notebooks and completed existing. See them in our github!

  • Minor improvements
    • fix license query in Visual Studio : #55
    • move files around in the installer to get a cleaner installation.
    • completed cuda types (cudaError_t)
    • a few more bug fixes.

@JeWaVe JeWaVe released this Jul 18, 2018 · 48 commits to master since this release

Assets 4

New in this version

  • Improved installer -- complete rewrite. Able to properly handle updates
  • Add Reference to CUDAImports from visual studio
  • OpenGL interop (with mandelbulb sample)
  • Simple recursion (CUDA only) -- no stackalloc in recursive functions, no parallel for
  • Improved linux support (same licensing model as Windows)
  • Jupyter notebooks
  • improved builtins integration (intellisense in the xml)
  • Major internal refactoring (remove third party dlls...)
  • Redistributable license (upon request only)
  • couple of bug fixes (hybarrays)

@JeWaVe JeWaVe released this Jun 13, 2018 · 81 commits to master since this release

Assets 4

New in this version

  • SetDistrib and SetStream can be called on wrapped object instead of Runner.
  • Fix "Hybridizer Project" button
  • Support of VB.Net (Hybridize project + sample)
  • hybridizer-cuda command line tool (to compile and run without need of any visual studio project)
  • Basic OpenGL interop + sample (NBody)
  • Notebooks in sample
  • Linux support (beta)
  • Introduced cuda.ERROR_CHECK to catch runtime API errors
Pre-release

@JeWaVe JeWaVe released this Jun 8, 2018 · 101 commits to master since this release

Assets 3

Today we are proud to publish Hybridizer Essentials for Linux as a public beta.

New Features

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 as
wrapped.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
  • Introduced hybridizer-cuda command line tool, which allows user to compile and run a C# file without writing any project or Makefile
  • When no device code, or no CUDA device is detected, we run the plain C# code with a warning.

Prerequisites

  • Tested on Ubuntu 16.04 – should work on other debian-based systems
  • Install a version of CUDA (starting at 8.0 – 9.0, 9.1 and 9.2 supported)
  • Install Mono (version 5.8.0.108 or later)

Installation

  • Install the package : sudo dpkg -i hybridizer-essentials-amd64-1.0.6151.9352.deb
  • Installer should print you about license request -- follow instructions on screen
  • If you said no to license request, you can do it later by running /opt/altimesh/hybridizer-essentials/bin/RequestLicense.exe

Run Example

  • Save this in a file Test.cs:
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();
        }
    }
}
  • run the command line
    /opt/altimesh/hybridizer-essentials/bin/hybridizer-cuda -o Test.exe Test.cs -run
  • it should print:

Hello From GPU

@JeWaVe JeWaVe released this May 24, 2018 · 103 commits to master since this release

Assets 3

New in this version

  • CUDA 9.2 support
  • Extended trial period (3 months)
  • Support of commercial licenses
  • Documentation! We published both general and API doc
  • MSI based installed instead of VSIX
  • Complete rewrite of Visual Studio integration. Should be faster and better looking.
  • Free for academics/students and hobbyists (upon request)
  • New features and bug fixes:
    • Heap allocation of primitive types arrays (new float[32])
    • Faster kernel startup
    • WDDM automatic detection to help detect driver timeout issue
    • More examples in the SDK (april_update branch until release)
    • Faster compilation on large code bases with many virtual functions
    • Streams support
    • Possible to register dll with an assembly attribute instead of explicit dll name in the code

Warning/Disclaimer
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
  • string type is not supported