DistIL VS ILGPU

Compare DistIL vs ILGPU and see what are their differences.

DistIL

Post-build IL optimizer and intermediate representation for .NET programs (by dubiousconst282)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
DistIL ILGPU
4 6
108 1,064
- -
8.5 9.0
8 days ago 1 day ago
C# C#
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

DistIL

Posts with mentions or reviews of DistIL. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-04.
  • Classes vs. Structs in .NET. How not to teach about performance
    3 projects | news.ycombinator.com | 4 Nov 2023
    How is that relevant to the vast majority of the code targeted by LINQ?

    The niche scenario you have outlined is partially covered by a recent System.Numerics.Tensors package update (even though I believe it would have been best if there was a community-maintained package with comparable quality that can be decoupled from .NET release cycle and trade-off support/compat guarantees in favour of more aggressive improvements in the future).

    The goal of LINQ itself is to offer optimal codepaths when it can within the constraints of the current design (naturally, you could improve it significantly if not for backwards compatibility with the previous 15 or so years of .NET codebases). The argument that it's not good because it's not the tool to do BLAS is just nonsensical.

    There is, however, an IL optimizer that can further vectorize certain common patterns and rewrite LINQ calls into open-coded loops: https://github.com/dubiousconst282/DistIL

  • DistIL: Experimental optimizer and intermediate representation for .NET IL
    1 project | /r/csharp | 2 Jan 2023
    Repo: https://github.com/dubiousconst282/DistIL
  • DistIL: An experimental optimizer and compiler IR for .NET CIL
    1 project | /r/csharp | 7 Dec 2022
  • What's the benefit of local functions?
    2 projects | /r/csharp | 7 Aug 2022
    The lifetime problem should not be that complicated, because the class/lambda allocation is contained entirely within the method. There's an open issue on the runtime repo about object stack allocation that would on paper alleviate some of these issues, but it's quite stagnated. In my toy optimizer, I made a buggy pattern matching transform for "concretizing" lambdas invocations using very little code, but implementing something like this in the JIT can be quite challenging, based on my limited experience.

ILGPU

Posts with mentions or reviews of ILGPU. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-27.
  • ILGPU VS ComputeSharp - a user suggested alternative
    2 projects | 27 Oct 2023
  • CUDA integration for C#
    5 projects | /r/csharp | 8 Sep 2022
    I've had a good experience with ILGPU: clean API, loads of samples, nice community. Apologies for a shameless plug, but I used it in one of my projects and happened to write a blog post about it: https://timiskhakov.github.io/posts/computing-the-convex-hull-on-gpu. Hope it helps!
  • Is there a way to utilize the gpu in a C# program?
    5 projects | /r/csharp | 25 Dec 2021
    https://github.com/Sergio0694/ComputesSharp is always being recommended to me. But I also just found this one https://github.com/m4rs-mt/ILGPU which looks very interesting. There are a lot of libraries which allow you to execute on the gpu
  • Is there a way to run metal shaders on CPU threads?
    1 project | /r/GraphicsProgramming | 28 Jul 2021
    I would checkout the github for more details, or ask on the discord for more specifics, but all the kernels are compiled into IL by the C# compiler, then at runtime the ILGPU compiler converts them from IL into PTX, OpenCL, or back into IL (in a special way to maintain thread grouping and stuff). Then PTX / OpenCL /IL is compiled and run using the respective runtimes. Cuda for PTX, the OpenCL runtime for OpenCL, and .net for IL. We have talked about creating a CPU execution path that tries to match speeds with CPU code, but I do not think it is a big priority.
  • What is ILGPU | Links | FAQ
    3 projects | /r/ILGPU | 12 May 2021
    Github repo

What are some alternatives?

When comparing DistIL and ILGPU you can also consider the following projects:

NetFabric.Hyperlinq - High performance LINQ implementation with minimal heap allocations. Supports enumerables, async enumerables, arrays and Span<T>.

CUDAfy.NET - CUDAfy .NET allows easy development of high performance GPGPU applications completely from the .NET. It's developed in C#.

mongo-csharp-analyzer - The MongoDB Analyzer is a free tool that helps you understand how your code translates into the MongoDB Query API.

ZenTimings

.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

NvAPIWrapper - NvAPIWrapper is a .Net wrapper for NVIDIA public API, capable of managing all aspects of a display setup using NVIDIA GPUs

Hybridizer - Examples of C# code compiled to GPU by hybridizer

Amplifier.NET - Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.

arrayfire-rust - Rust wrapper for ArrayFire

srmd-ncnn-vulkan - SRMD super resolution implemented with ncnn library

cuda-api-wrappers - Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX.

TinyNvidiaUpdateChecker - Windows tool to check for NVIDIA GPU driver updates