-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SPIRV-LLVM-Translator
A tool and a library for bi-directional translation between SPIR-V and LLVM IR
-
kompute
General purpose GPU compute framework built on Vulkan to support 1000s of cross vendor graphics cards (AMD, Qualcomm, NVIDIA & friends). Blazing fast, mobile-enabled, asynchronous and optimized for advanced GPU data processing usecases. Backed by the Linux Foundation.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
rust-gpu-compute-example
Minimal example of using rust-gpu and wgpu to dispatch compute shaders written in rust.
Nice and simple. Its quite portable too. But simplicity and ease of use come with some limitations. Ash is much more complex but can extract every bit of power from your card if needed. Wgpu-rs github comes with many examples and you can find a really nice tutorial here
The book guide from rust-gpu was important to bootstrap my experience with Rust-gpu, but as you progress you'll soon realise that it is very, very limited. The code source repository of EmbarkStudio/rust-gpu is full of informations. Specifically this more or less up-to-date support page
wgpu also supports compute shaders, though I haven't used it yet
Albeit on a rather small-scale case, I have ben pretty happy interfacing Rust with Futhark kernels through the C ABI. I don't know how far you can go with that, but it worked nicely for me.
Nice and simple. Its quite portable too. But simplicity and ease of use come with some limitations. Ash is much more complex but can extract every bit of power from your card if needed. Wgpu-rs github comes with many examples and you can find a really nice tutorial here
Of course, CUDA is field tested framework to do job done. But it is interesting to look at other perspective technologies. Are there many differences between NVIDIA PTX and SPIR-V? Isn't possible to compile (Rust, C++, CUDA, etc.) to LLVM IR, then use tool like LLVM to SPIR-V translator and have GPU code that runs on any vendor card?
Other API things, like command buffer recording, memory buffer allocation/copy, could be abstracted from Vulkan. There were attempts by few people, most notable Kompute, but they use GLSL.
Wgpu has performance close to Vulkan in some cases, but still no compute performance benchmarks. Just curios, why wgpu couldn't just make extension to use advanced atomics, multiple queues or other high-performance feature in hardware that supports it? One of Vulkan and wgpu goals are to make it highly customizable through extensions. edit: actually already there is wgpu extension that supports (subgroup operations)[https://github.com/gpuweb/gpuweb/pull/1459]
Basic rust-gpu compute example : One very simple example to setup a compute shader with Wgpu and rust-gpu.
DJMcNab compute shader examples: A great set of examples for rust-gpu and compute shaders.