Home · Juice-Labs/Juice-Labs Wiki
Extracto
Juice Community Version Public Release. Contribute to Juice-Labs/Juice-Labs development by creating an account on GitHub.
Contenido
Welcome to Juice GPU-over-IP
Join our Discord Server for ideas, questions, and feedback
We're offering an easy software install of our Community Version here for your use, which is governed by these Terms and Conditions.
What is Juice?
Juice is GPU-over-IP: a software application that routes GPU workloads over standard networking, creating a client-server model where virtual remote GPU capacity is provided from Server machines that have physical GPUs (GPU Hosts) to Client machines that are running GPU-hungry applications (Application Hosts). A single GPU Host can service an arbitrary number of Application Hosts.
Client applications are unaware that the physical GPU is remote, and physical GPUs are unaware that the workloads they are servicing are remote -- therefore no modifications are necessary to applications or hardware.
Why Juice?
GPU capacity is increasingly critical to major trends in computing, but its use is hampered by a major limitation: a GPU-hungry application can only run in the same physical machine as the GPU itself. This limitation causes extreme local-resourcing problems -- there's either not enough (or none, depending on the size and power needs of the device), or GPU capacity sits idle and wasted (utilization is broadly estimated at below 15%).
By abstracting application hosts from physical GPUs, Juice decouples GPU-consuming clients from GPU-providing servers:
- Any client workload can access GPU from anywhere, creating new capabilities
- GPU capacity is pooled and shared across wide areas -- GPU hardware scales independently of other computing resources
- GPU utilization is driven much higher, and stranded capacity is rescued, by dynamically adding multiple clients to the same GPU based on resource needs and availability -- i.e. more workloads are served with the same GPU hardware
Supported Uses
Systems
Juice supports 64-bit architectures, operating systems, and applications.
Juice Client (the software needing a GPU) runs:
- On Windows 10+ or Ubuntu 22 operating systems
- On physical machines or VMs
- Inside containers
Juice Server (the software sharing up a GPU) runs:
- On Windows 10+ or Ubuntu 22 operating systems
- On physical machines or VMs
- Inside containers
- On machines with a physical NVIDIA GPU
- Best when there is enough disk space on the Server to hold cached data. The disk space need will vary based on your use case, but starting with 50GB+ is a good idea. The cache can be cleared manually without interrupting Juice operation.
Operating systems need not match between Client and Server - e.g. you can run Windows Clients against an Ubuntu Server.
Deployment Environments
The only requirements are:
- The Client must have access to the Server IP address and port
- Network bandwidth and latency must support the profile of the workload (Juice employs caching and compression to optimize for network capabilities)
So Juice can be deployed in any environment -- in-home, on-prem, edge, hybrid, cloud (here is an example of Juice running within AWS), or a mix of these.
Applications
ML / AI (Ubuntu or Windows)
TRY:
Inference or training for models implemented in PyTorch or TensorFlow running on top of CUDA, like:
- ResNet (Ubuntu) (Win)
- YOLOv5 (Ubuntu) (Win)
- Stable Diffusion (e.g. https://github.com/AUTOMATIC1111/stable-diffusion-webui)
- ... or try something else on https://pytorch.org/hub/, and let us know how it goes!
- Compute APIs supported are: CUDA and Optix
Graphics (Windows only)
TRY:
- vkcube (Vulkan) - a simple spinning-cube application (included with your Juice Client software) for confirming that Juice is set up properly end-to-end
- Superposition (DX11/OpenGL) - a gaming benchmark & performance test
- Graphics APIs supported are: DX11/DX12/Vulkan/OpenGL
Fuente: GitHub
