{"id":17632737,"url":"https://github.com/m4rs-mt/ilgpu","last_synced_at":"2025-05-14T11:11:21.759Z","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-23T00:18:26.000Z","size":11608,"stargazers_count":1534,"open_issues_count":50,"forks_count":129,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-04-29T07:38:54.107Z","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-29T06:36:37.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":254129523,"owners_count":22019628,"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-10-23T01:45:26.490Z","updated_at":"2025-05-14T11:11:16.749Z","avatar_url":"https://github.com/m4rs-mt.png","language":"C#","readme":"# ILGPU Tutorials\n\n## Primers (How a GPU works)\n\nThis series introduces how a GPU works and what ILGPU does. If you have programmed with CUDA or OpenCL\nbefore you can probably skip 01 and 02.\n\n00 [Setting up ILGPU](01_Primers/01_Setting-Up-ILGPU.md) (ILGPU version 1.0.0)\n\n01 [A GPU is not a CPU](01_Primers/01_Setting-Up-ILGPU.md) (ILGPU version 1.0.0)\n\u003e This page will provide a quick rundown the basics of how kernels (think GPU programs) run.\n\n02 [Memory and bandwidth and threads. Oh my!](01_Primers/02_A-GPU-Is-Not-A-CPU.md)\n\u003e This will hopefully give you a better understanding of how memory works in hardware and the performance\n\u003e implications.\n\n## Beginner (How ILGPU works)\n\nThis series is meant to be a brief overview of ILGPU and how to use it. It assumes you have at least a little knowledge\nof how Cuda or OpenCL work.\nIf you need a primer look to something like [this for Cuda](https://developer.nvidia.com/about-cuda)\nor [this for OpenCL](https://www.khronos.org/opencl/)\n\n01 [Context and Accelerators](02_Beginner/01_Context-and-Accelerators.md)\n\u003e This tutorial covers creating the Context and Accelerator objects which setup ILGPU for use.\n\u003e It's mostly boiler plate and does no computation but it does print info about your GPU if you have one.\n\u003e There is some advice about ILGPU in here that makes it worth the quick read.\n\u003e\n\u003e See Also:\n\u003e\n\u003e [Device Info Sample](https://github.com/m4rs-mt/ILGPU/tree/master/Samples/DeviceInfo)\n\n02 [MemoryBuffers and ArrayViews](02_Beginner/02_MemoryBuffers-and-ArrayViews.md)\n\u003e This tutorial covers the basics for Host / Device memory management.\n\u003e\n\u003e See Also:\n\u003e\n\u003e [Simple Allocation Sample](https://github.com/m4rs-mt/ILGPU/tree/master/Samples/SimpleAlloc)\n\n03 [Kernels and Simple Programs](02_Beginner/03_Kernels-and-Simple-Programs.md)\n\u003e This is where it all comes together. This covers actual code, on the actual GPU (or the CPU if you are testing / dont\n\u003e have a GPU).\n\u003e\n\u003e See Also:\n\u003e\n\u003e [Simple Kernel Sample](https://github.com/m4rs-mt/ILGPU/tree/master/Samples/SimpleKernel)\n\u003e\n\u003e [Simple Math Sample](https://github.com/m4rs-mt/ILGPU/tree/master/Samples/SimpleMath)\n\n\n04 [Structs and the N-body problem](02_Beginner/04_Structs.md)\n\u003e This tutorial actually does something! We use computing the N-body problem as a sample of how to better manage Host /\n\u003e Device memory.\n\n## Beginner II (Something more interesting)\n\nWell at least I think. This is where I will put ILGPUView bitmap shader things I (or other people if they want to)\neventually write. Below are the few I have planned / think would be easy.\n\n1. Ray Tracing in One Weekend based raytracer\n2. Cloud Simulation\n3. 2D Physics Simulation\n4. Other things I see on shadertoy\n\n# Advanced Resources\n\n## Samples\n\nThey cover a wide swath of uses for ILGPU including much of the more complex things that ILGPU is capable of.\n[There are too many to list out so I will just link to the repository.](https://github.com/m4rs-mt/ILGPU/tree/master/Samples)\n\n## Overview\n\n[Memory Buffers \u0026 Views](03_Advanced/01_Memory-Buffers-and-Views.md)\n\n[Kernels](03_Advanced/02_Kernels.md)\n\n[Shared Memory](03_Advanced/03_Shared-Memory.md)\n\n[Math Functions](03_Advanced/04_Math-Functions.md)\n\n[Dynamically Specialized Kernels](03_Advanced/05_Dynamically-Specialized-Kernels.md)\n\n[Debugging \u0026 Profiling](03_Advanced/06_Debugging-and-Profiling.md)\n\n[Inside ILGPU](03_Advanced/07_Inside-ILGPU.md)\n\n## Upgrade Guides\n\n[Upgrade v0.1.X to v0.2.X](04_Upgrade-Guides/06_v0.1.X-to-v0.2.X.md)\n\n[Upgrade v0.3.X to v0.5.X](04_Upgrade-Guides/05_v0.3.X-to-v0.5.X.md)\n\n[Upgrade v0.6.X to v0.7.X](04_Upgrade-Guides/04_v0.6.X-to-v0.7.X.md)\n\n[Upgrade v0.7.X to v0.8.X](04_Upgrade-Guides/03_v0.7.X-to-v0.8.X.md)\n\n[Upgrade v0.8.0 to v0.8.1](04_Upgrade-Guides/02_v0.8.0-to-v0.8.1.md)\n\n[Upgrade v0.8.X to v0.9.X](04_Upgrade-Guides/01_v0.8.X-to-v0.9.X.md)\n","funding_links":[],"categories":[],"sub_categories":[],"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"}