Virtual GPU driver in Rust

Do you know of any OSS Nvidia drivers written in Rust? Or some C bindings but the driver to be OSS.

I'm interested in creating a vGPU a virtual GPU where you can run your ML apps like you would on a real GPU. I want then to send the GPU instructions over the wire and execute them in the cloud on real GPUs.
I've seen wgpu as an abstraction layer and then on remote I can use ash to execute them on real GPU.
But how can I create the Virtual interface (I imagined it needs to be (like) a driver) so the local app communicates with it. Can I do it just with wgpu somehow exposing the interface? I would need also support for CUDA.

I've read about nova but not sure in what state it is, also hear Redhat writing a new driver for Vulkan in Rust, maybe it's nova?

Last actual change was 8 months ago, though is was rebased 2 weeks ago: drm / nova · GitLab I suspect it is waiting on rust bindings for various interfaces getting merged first before development continues.

That would be NVK. Nova is a kernel driver. NVK a userspace driver part of Mesa which currently uses Noveau as kernel driver.

2 Likes

As I understand for CUDA you need user space driver too right?

Yes. CUDA is a userspace API with userspace driver. Only Nvidia has a full implementation in their proprietary userspace driver though.

legally enforced, annoyingly :face_with_raised_eyebrow:

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.