{"id":13676562,"url":"https://github.com/m4rs-mt/ILGPU","last_synced_at":"2025-04-29T07:32:47.508Z","repository":{"id":37438856,"uuid":"78356810","full_name":"m4rs-mt/ILGPU","owner":"m4rs-mt","description":"ILGPU JIT Compiler for high-performance .Net GPU programs","archived":false,"fork":false,"pushed_at":"2025-04-22T02:42:12.000Z","size":11609,"stargazers_count":1508,"open_issues_count":51,"forks_count":129,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-04-22T04:22:00.726Z","etag":null,"topics":["amd","cil","compiler","cpu","cuda","dotnet","gpgpu","gpgpu-computing","gpu","ilgpu","intel","jit","kernels","msil","nvidia","opencl","parallel","ptx"],"latest_commit_sha":null,"homepage":"http://www.ilgpu.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m4rs-mt.png","metadata":{"files":{"readme":"Docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-3RD-PARTY.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-08T16:49:11.000Z","updated_at":"2025-04-22T03:18:36.000Z","dependencies_parsed_at":"2023-12-20T12:31:53.140Z","dependency_job_id":"341dd64d-2516-4487-b267-8401a2c3558f","html_url":"https://github.com/m4rs-mt/ILGPU","commit_stats":{"total_commits":2143,"total_committers":46,"mean_commits":46.58695652173913,"dds":"0.32944470368642087","last_synced_commit":"c3af8f368445d8e6443f36c99488fc601adcd737"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4rs-mt%2FILGPU","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4rs-mt%2FILGPU/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4rs-mt%2FILGPU/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4rs-mt%2FILGPU/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m4rs-mt","download_url":"https://codeload.github.com/m4rs-mt/ILGPU/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251456051,"owners_count":21592285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amd","cil","compiler","cpu","cuda","dotnet","gpgpu","gpgpu-computing","gpu","ilgpu","intel","jit","kernels","msil","nvidia","opencl","parallel","ptx"],"created_at":"2024-08-02T13:00:29.648Z","updated_at":"2025-04-29T07:32:42.490Z","avatar_url":"https://github.com/m4rs-mt.png","language":"C#","readme":"# ILGPU\n[![CI](https://github.com/m4rs-mt/ILGPU/actions/workflows/ci.yml/badge.svg?style=flat\u0026branch=master\u0026event=push)](https://github.com/m4rs-mt/ILGPU/actions/workflows/ci.yml?query=branch%3Amaster+event%3Apush)\n[![](https://img.shields.io/nuget/v/ilgpu?style=flat\u0026label=release)](https://www.nuget.org/packages/ilgpu/latest)\n[![](https://img.shields.io/nuget/vpre/ilgpu?style=flat\u0026label=pre-release)](https://www.nuget.org/packages/ilgpu/absoluteLatest)\n[![](https://img.shields.io/feedz/vpre/ilgpu/preview/ilgpu?style=flat\u0026color=blue\u0026label=preview)](#preview-versions)\n\nILGPU is a JIT (just-in-time) compiler for high-performance GPU programs written in .Net-based languages.\nILGPU is entirely written in C# without any native dependencies.\nIt offers the flexibility and the convenience of C++ AMP on the one hand and the high performance of Cuda programs on the other hand.\nFunctions in the scope of kernels do not have to be annotated (default C# functions) and are allowed to work on value types.\nAll kernels (including all hardware features like shared memory and atomics) can be executed and debugged on the CPU using the integrated multi-threaded CPU accelerator.\n\n# ILGPU.Algorithms\n\nReal-world applications typically require a standard library and a set of standard algorithms that \"simply work\".\nThe ILGPU Algorithms library meets these requirements by offering a set of auxiliary functions and high-level algorithms (e.g. sorting or prefix sum).\nAll algorithms can be run on all supported accelerator types.\nThe CPU accelerator support is especially useful for kernel debugging.\n\n# Community\n[![Discord](https://img.shields.io/discord/511598552179539988?label=ILGPU)](https://discord.gg/X6RBCff)\n\nThe ILGPU community provides immediate help, feedback and suggestions via Discord ASAP.\nLog on to the server and you can get started right away.\n\nThere are weekly *talk-to-dev* meetings on the Discord server.\nDon't hesitate to join the meeting if you have any questions or suggestions or just want to talk to one of the contributors.\nCheck out the *welcome* channel on our Discord server for more information.\n\n# ILGPU Samples\n\nThe sample projects demonstrate the basic usage of ILGPU to help you get started with high performance GPU programming.\n\n# Build Instructions\n\nILGPU requires Visual Studio 2022 (or higher) and/or a .NET 6.0 SDK toolchain.\n\nUse the provided Visual Studio solution to build the ILGPU libs\nin the desired configurations (Debug/Release).\n\n# Tests\n\nSometimes the XUnit test runner stops execution when all tests are run in parallel.\nThis is not a problem related to the internal tests, but a known XUnit/Visual Studio problem.\nIf the tests stop unexpectedly, you can simply run the remaining tests again to continue working.\n\nNote: You can unload ILGPU.Tests.Cuda (for example) if you do not have a Cuda-capable device to\nexecute the Cuda test cases.\n\n# Related Information\n* ILGPU Homepage (www.ilgpu.net)\n* Latest ILGPU Samples (https://github.com/m4rs-mt/ILGPU/tree/master/Samples)\n* Latest ILGPU Documentation (https://github.com/m4rs-mt/ILGPU/tree/master/Docs)\n* Nuget (https://www.nuget.org/packages/ILGPU)\n* Release (https://github.com/m4rs-mt/ILGPU/releases/)\n\n# Preview versions\nPreview/Daily builds are distributed using https://feedz.io/. To pull preview versions into your project, use the following NuGet.config file:\n~~~xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cconfiguration\u003e\n  \u003cpackageSources\u003e\n    \u003cadd key=\"ilgpu\" value=\"https://f.feedz.io/ilgpu/preview/nuget/index.json\" /\u003e\n  \u003c/packageSources\u003e\n\u003c/configuration\u003e\n~~~\n\n# Symbols\n\nSymbols for ILGPU can be [loaded in VS2022](https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger).\nFor official releases, ensure that the built-in `NuGet.org Symbol Server` is enabled. For preview release symbols, add the link:\n```\nhttps://f.feedz.io/ilgpu/preview/symbols\n```\n\n# Source Link\n\nILGPU also provides Source Link support for a better debugging experience. Make sure `Enable Source Link support` is activated in [VS2022 options](https://docs.microsoft.com/en-us/visualstudio/debugger/general-debugging-options-dialog-box).\n\n# General Contribution Guidelines\n\n* Make sure that you agree with the general coding style (in terms of braces, whitespaces etc.).\n* Make sure that ILGPU compiles without warnings in all build modes (Debug, DebugVerification and Release).\n\n# References\n\n* Parallel Thread Execution ISA 7.0\n    - NVIDIA\n* A Graph-Based Higher-Order Intermediate Representation\n    - Roland Leissa, Marcel Koester, and Sebastian Hack\n* Target-Specific Refinement of Multigrid Codes\n    - Richard Membarth, Philipp Slusallek, Marcel Koester, Roland Leissa, and Sebastian Hack\n* Code Refinement of Stencil Codes\n    - Marcel Koester, Roland Leissa, Sebastian Hack, Richard Membarth, and Philipp Slusallek\n* Simple and Efficient Construction of Static Single Assignment Form\n    - Matthias Braun, Sebastian Buchwald, Sebastian Hack, Roland Leissa, Christoph Mallon and Andreas Zwinkau\n* A Simple, Fast Dominance Algorithm\n    - Keith D. Cooper, Timothy J. Harvey and Ken Kennedy\n* Fast Half Float Conversions\n    - Jeroen van der Zijp\n* Identifying Loops In Almost Linear Time\n    - G. Ramalingam\n\n# License information\n\nILGPU is licensed under the University of Illinois/NCSA Open Source License.\nDetailed license information can be found in LICENSE.txt.\n\nCopyright (c) 2016-2024 ILGPU Project. All rights reserved.\n\nOriginally developed by Marcel Koester.\n\n## License information of required dependencies\n\nDifferent parts of ILGPU require different third-party libraries.\n* ILGPU Dependencies\n    - System.Collections.Immutable\n    (https://www.nuget.org/packages/System.Collections.Immutable)\n    - System.Memory\n    (https://www.nuget.org/packages/System.Memory)\n    - System.Reflection.Metadata\n    (https://www.nuget.org/packages/System.Reflection.Metadata)\n    - System.Runtime.CompilerServices.Unsafe\n    (https://www.nuget.org/packages/system.runtime.CompilerServices.Unsafe/)\n\nDetailed copyright and license information of these dependencies can be found in\nLICENSE-3RD-PARTY.txt.\n","funding_links":[],"categories":["Uncategorized","C#","Misc","Audio"],"sub_categories":["Uncategorized","GUI - other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4rs-mt%2FILGPU","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm4rs-mt%2FILGPU","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4rs-mt%2FILGPU/lists"}