Implementation - radumarias/rvirt-gpu GitHub Wiki

  1. Virtual GPU API: using wgpu create an abstraction layer for GPU instructions
  2. vGPU (GPU driver): create a GPU driver that virtualizes the GPU, as a vGPU
  3. Local app: decrypts the data with the key from OS's keyring and runs on vGPU
  4. Network Communication Layer: Using tokio-rustls send the instructions to GPU-coordinator over TLS
  5. GPU-Coordinator: distribute the instructions to multiple real GPUs and sends back the results over TLS.
  6. Server-Side GPU Execution
    • using ash
    • Rust-CUDA to run the instructions on the actual GPUs. GPU-Coordinator sends back the results over TLS.
    • we can monitor the GPU with nvml-wrapper
  7. Handling Results: On the client side, deserialize the received results and make them available to the local application through the Virtual GPU API.