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.
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-Coortinator
-
GPU-Coortinator
distribute the instructions to multiple realGPU
s - then it sends the results back to
vGPU
which sends them to the local app
The advantage is your private data never leaves your network in plain. Only actual GPU instructions (CUDA instructions) are sent over the wire but encrypted with TLS.
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 https://github.com/radumarias/rvirt-gpu/blob/main/website/resources/schema2.png
implementation ideas https://github.com/radumarias/rvirt-gpu/wiki/Implementation