Primers (How a GPU works)
This series introduces how a GPU works and what ILGPU does. If you have programmed with CUDA or OpenCL before you can probably skip 01 and 02.
00 Setting up ILGPU (ILGPU version 1.0.0)
01 A GPU is not a CPU (ILGPU version 1.0.0)
This page will provide a quick rundown the basics of how kernels (think GPU programs) run.
02 Memory and bandwidth and threads. Oh my!
This will hopefully give you a better understanding of how memory works in hardware and the performance implications.
Beginner (How ILGPU works)
This series is meant to be a brief overview of ILGPU and how to use it. It assumes you have at least a little knowledge of how Cuda or OpenCL work. If you need a primer look to something like this for Cuda or this for OpenCL
This tutorial covers creating the Context and Accelerator objects which setup ILGPU for use. It’s mostly boiler plate and does no computation but it does print info about your GPU if you have one. There is some advice about ILGPU in here that makes it worth the quick read.
02 MemoryBuffers and ArrayViews
This tutorial covers the basics for Host / Device memory management.
03 Kernels and Simple Programs
This is where it all comes together. This covers actual code, on the actual GPU (or the CPU if you are testing / dont have a GPU).
04 Structs and the N-body problem
This tutorial actually does something! We use computing the N-body problem as a sample of how to better manage Host / Device memory.
Beginner II (Something more interesting)
Well at least I think. This is where I will put ILGPUView bitmap shader things I (or other people if they want to) eventually write. Below are the few I have planned / think would be easy.
- Ray Tracing in One Weekend based raytracer
- Cloud Simulation
- 2D Physics Simulation
- Other things I see on shadertoy
They cover a wide swath of uses for ILGPU including much of the more complex things that ILGPU is capable of. There are too many to list out so I will just link to the repository.
Dynamically Specialized Kernels
Help us make these docs great!
All ILGPU docs are open source. See something that's wrong or unclear? Submit a pull request.Make a contribution