Remix.run Logo
mohamedkoubaa an hour ago

Working on goldy: https://github.com/koubaa/goldy

A new kind of GPU library written in rust with backends for CUDA, DX12, Vulkan, and Metal (tenstorrent and wgpu are planned) and bindings for rust-dynamic, python, c++, c, and dotnet (Java and Fortran are planned).

Uses the slang shader language exclusively. All submissions are expressed as graphs (like cuda graphs), are retained automatically (sometimes partially with a graph partition algorithm), and automatic synchronization of GPU resources. No runtime dependencies (slang is vendored) and new calling convention for shaders using a virtual entry point that allows resources to appear as arguments to the shader 'main'. Includes automatic VRAM and resource recycling for device resources.

Shader coroutines, rust shader authoring, and automatic kernel fusion are planned.

Supports both GPGPU and graphics.

Made it because cross backend GPU libraries usually either target lowest common denominator or are specialized for either compute or graphics or ML. In my experience GPU programs and frameworks are written to target a different kind of machine than a tape machine, but nobody outside of tenstorrent have bothered to describe that machine. So I defined a new kind of abstract machine for cooperative resource-oriented computation called a Fondaco machine for which goldy is the reference implementation.