sorry if I posted this again, but this has more context on what I'm trying to build and libs what I'm trying to use
The idea is to build something like this:
Virtualization for GPU that allows you to run local GPU apps and the code is actually run in the cloud, keeping your data local, without changing your apps, at least not much.
Functionality:
vGPU
is avirtualization
layer for aGPU
- your local app "runs" on local
vGPU
- local app decrypts the actual local data and sends the (
CUDA
) instructions to the remoteGPU-Coordinator
GPU-Coortdnator
distribute the instructions to multiple realGPU
s- then it sends the results back to
vGPU
which sends them to the local app
Three advatages emerge:
- You can execute
AI
models without haing a localGPU
- Execute on multiple
GPUs
, in the end, for some use cases, it could be faster than running on a localGPU
- Execute
ML
models without storing your data onuntrusted
providers. It will keep some blocks inmemory
which are needed for executing currentinstructions
. But at least they areobfruscated
andprotected
by OS not to be easily copied by otherprocesses
from memory.Data in transit
issecured
byTLS
I know it will be slow, but in cases where the data flow is small compared to processing time it could be a reasonable compromise for the security it gives you.
Also because instructions are distributed to multiple GPUs, when possible, it could offer better performance, in some cases, than locally
schema rvirt-gpu/website/resources/schema2.png at main · radumarias/rvirt-gpu · GitHub
implementation ideas Implementation · radumarias/rvirt-gpu Wiki · GitHub
I know how to move the instructions and results around and also how to execute them on real GPU, but I don't know how to build the driver for vGPU and what libs to use.