logoalt Hacker News

mohamedkoubaayesterday at 6:09 PM1 replyview on HN

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.


Replies

c_hastingstoday at 2:11 AM

But why? (not meant to be rude). why would I want to use this gpu library versus what is out there already? I don't understand the value of it.