AsmResolver
ILGPU
AsmResolver | ILGPU | |
---|---|---|
1 | 6 | |
790 | 1,064 | |
- | - | |
8.5 | 9.0 | |
6 days ago | 1 day ago | |
C# | C# | |
MIT License | GNU General Public License v3.0 or later |
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.
AsmResolver
-
Two steps to builder a .NET Trimmer application
However, according to Washi1337, author of AsmResolver (an open source project similar to DnLib), the NativeWrite method tries to preserve the structure of the native code so that the assembly size cannot be reduced. Instead, it may even increase the size of the assembly (see https://github.com/Washi1337/AsmResolver/issues/267). And in the actual use, I found that after modifying these assemblies, the program would fail to start. Checking the Windows event log, I found that it was caused by CLR startup failure. According to Washi1337, if only the native code in the assembly contains ReadyToRun, we can simply remove the ILLibrary flag from the assembly. After all, the optimized assembly still preserves the original IL code. However, after I did what Washi1337 said, the program still failed to start. It is not clear why, because the assembly containing native code can not be tailored well, so I did not go into further research, welcome friends who are proficient in CLR to share experience.
ILGPU
-
ILGPU VS ComputeSharp - a user suggested alternative
2 projects | 27 Oct 2023
-
CUDA integration for C#
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?
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?
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
Github repo
What are some alternatives?
Zack.DotNetTrimmer
CUDAfy.NET - CUDAfy .NET allows easy development of high performance GPGPU applications completely from the .NET. It's developed in C#.
IL2C - IL2C - A translator for ECMA-335 CIL/MSIL to C language.
ZenTimings
sambal - Create executable showing message boxes!
NvAPIWrapper - NvAPIWrapper is a .Net wrapper for NVIDIA public API, capable of managing all aspects of a display setup using NVIDIA GPUs
XPEViewer - PE file viewer/editor for Windows, Linux and MacOS.
Hybridizer - Examples of C# code compiled to GPU by hybridizer
Cinchoo ETL - ETL framework for .NET (Parser / Writer for CSV, Flat, Xml, JSON, Key-Value, Parquet, Yaml, Avro formatted files)
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.
KsDumper - Dumping processes using the power of kernel space !
arrayfire-rust - Rust wrapper for ArrayFire