compute-shader-101
Vulkan-Guide
compute-shader-101 | Vulkan-Guide | |
---|---|---|
8 | 9 | |
489 | 1,801 | |
2.7% | 0.3% | |
0.0 | 8.0 | |
3 months ago | about 2 months ago | |
Rust | Makefile | |
Apache License 2.0 | Creative Commons Attribution 4.0 |
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.
compute-shader-101
-
wgpu-rs resources for computing purposes only
You might find compute shader 101 useful.
- Vulkan terms vs. Direct3D 12 (aka DirectX 12) terms
-
WGPU setup and compute shader feedback - and Tutorial.
Compute Shader 101 - Github, Video, Slideshow. additional resources at end of slide show.
-
Compute Shaders and Rust - looking for some guidance.
Yes, compute-shader-101 is sample code + video + slides.
-
Prefix sum on portable compute shaders
Workgroup in Vulkan/WebGPU lingo is equivalent to "thread block" in CUDA speak; see [1] for a decoder ring.
> Using atomics to solve this is rarely a good idea, atomics will make things go slowly, and there is often a way to restructure the problem so that you can let threads read data from a previous dispatch, and break your pipeline into more dispatches if necessary.
This depends on the exact workload, but I disagree. A multiple dispatch solution to prefix sum requires reading the input at least twice, while decoupled look-back is single pass. That's a 1.5x difference if you're memory saturated, which is a good assumption here.
The Nanite talk (which I linked) showed a very similar result, for very similar reasons. They have a multi-dispatch approach to their adaptive LOD resolver, and it's about 25% slower than the one that uses atomics to manage the job queue.
Thus, I think we can solidly conclud that atomics are an essential part of the toolkit for GPU compute.
You do make an important distinction between runtime and development environment, and I should fix that, but there's still a point to be made. Most people doing machine learning work need a dev environment (or use Colab), even if they're theoretically just consuming GPU code that other people wrote. And if you do distribute a CUDA binary, it only runs on Nvidia. By contrast, my stuff is a 20-second "cargo build" and you can write your own GPU code with very minimal additional setup.
[1]: https://github.com/googlefonts/compute-shader-101/blob/main/...
-
Compute shaders - where to learn more outside of unity
googlefonts/compute-shader-101: Sample code for compute shader 101 training (github.com)
-
Vulkan Memory Allocator
I agree strongly with you about the need for good resources. Here are a few I've found that are useful.
* A trip through the Graphics Pipeline[1] is slightly dated (10 years old) but still very relevant.
* If you're interested in compute shaders specifically, I've put together "compute shader 101"
* Alyssa Rosenzweig's posts[3] on reverse engineering GPUs casts a lot of light on how they work at a low level. It helps to have a big-picture understanding first.
I think there is demand for a good book on this topic.
[1]: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
[2]: https://github.com/googlefonts/compute-shader-101
[3]: https://rosenzweig.io/
-
Compute shader 101 (video and slides)
This is a talk I've been working on for a while. It starts off motivating why you might want to write compute shaders (tl;dr you can exploit the impressive compute power of GPUs but portably), then explains the basics of how, including some sample code to help get people started.
Slides: https://docs.google.com/presentation/d/1dVSXORW6JurLUcx5UhE1...
Sample code: https://github.com/googlefonts/compute-shader-101
Feedback is welcome (please file issues against the open source repo), and AMA in this thread.
Vulkan-Guide
-
Cube World Omega - Release for MacOS
Vulkan directly supports many platforms, and also supports MacOS and IOS through porting tools.
-
GLSL shaders resources
You have access to atomics in vulkan
- DXVK converting Direct Api to Vulkan Api?
-
Vulkan terms vs. Direct3D 12 (aka DirectX 12) terms
You might want to take a look at our Vulkan guide. The linked chapter has common terms for Vulkan, DirectX and Metal.
-
Switching the Linux graphics stack from GLX to EGL
Vulkan has WSI, which is roughly equivalent to GLX or EGL in the OpenGL world.
https://github.com/KhronosGroup/Vulkan-Guide/blob/master/cha...
-
Vulkan - some introductory words
Vulkan Guide for more
-
How can I learn Vulkan?
Yes The gist is: you don't actually save any time trying to not-rerecord, and it limits your ability to do many basic real optimizations, like frustum culling. https://github.com/KhronosGroup/Vulkan-Guide/blob/master/chapters/common_pitfalls.md#recording-command-buffers
-
Short interest in $BB - It's increasing
Looks like there is a lot more work before it can be used for anything more than dash entertainment system.. https://github.com/KhronosGroup/Vulkan-Guide/blob/master/chapters/what_vulkan_can_do.md#safety-critical
- How to install Vulkan on Manjaro?
What are some alternatives?
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
Vulkan - Examples and demos for the new Vulkan API
raylib - A simple and easy-to-use library to enjoy videogames programming
VulkanTutorial - Tutorial for the Vulkan graphics and compute API
emscripten - Emscripten: An LLVM-to-WebAssembly Compiler
vulkan-guide - Introductory guide to vulkan.
strange-attractors
cdogs-sdl - Classic overhead run-and-gun game
vello - An experimental GPU compute-centric 2D renderer.
apulse - PulseAudio emulation for ALSA
gpgpu-rs - Simple experimental async GPGPU framework for Rust
awesome-vulkan - Awesome Vulkan ecosystem