28.2c Limitations: no memory isolation, no fault isolation, no QoS guarantees

📦 Cluster Orchestration 📖 Advanced GPU Resource Management

📘 Context Introduction

Time-slicing is a GPU sharing technique where multiple workloads take turns using the same GPU over very short time intervals (typically milliseconds). While this approach is simple to configure and allows many users to share a single GPU, it comes with three significant limitations that engineers must understand before deploying it in production environments.

Unlike Multi-Instance GPU (MIG), which provides hardware-level partitioning, time-slicing operates purely at the software scheduler level. This means it lacks critical guarantees that are essential for predictable, secure, and reliable AI workloads.


⚙️ Limitation 1: No Memory Isolation

What it means: When using time-slicing, all workloads sharing the GPU have access to the same GPU memory (VRAM). There is no hardware barrier preventing one workload from consuming all available memory.

Key consequences: - A single runaway process can consume all GPU memory, causing other workloads to fail with out-of-memory (OOM) errors - Memory usage is not capped per workload — any job can grow to fill the entire VRAM - There is no way to guarantee that a critical inference job will have enough memory available when needed - Debugging memory conflicts becomes difficult because the issue appears as a global GPU failure rather than a per-workload problem

Real-world impact: If you run a large training job alongside a real-time inference service using time-slicing, the training job could allocate all available memory, causing the inference service to crash unexpectedly.


🛡️ Limitation 2: No Fault Isolation

What it means: A crash or error in one workload can affect or bring down all other workloads sharing the same GPU through time-slicing.

Key consequences: - If one workload triggers a GPU reset (e.g., due to a driver crash or illegal memory access), all workloads on that GPU are terminated - A misbehaving workload can corrupt shared GPU state, leading to incorrect results for other workloads - There is no hardware boundary to contain errors — faults propagate across all time-sliced jobs - Recovery requires restarting all workloads, not just the failed one

Real-world impact: A buggy training script that causes a GPU exception will kill not only that training job but also any other inference or development workloads sharing the same GPU.


📊 Visual Representation: Timeslicing VRAM Out-Of-Memory (OOM) Crash

This flowchart shows the limits of timeslicing: if concurrent pods exceed physical VRAM, the application crashes with an OOM error.

flowchart LR PodA["Pod A (Allocates 12GB VRAM)"] -->|No VRAM isolation| PhysicalGPU["Physical GPU (16GB VRAM)"] PodB["Pod B (Allocates 6GB VRAM)"] -->|No VRAM isolation| PhysicalGPU PhysicalGPU -->|VRAM Over-allocation check| Crash["OOM Error (Pod B terminated)"] classDef cpu fill:#eafaf1,stroke:#76b900,stroke-width:2px,rx:6px,ry:6px; classDef memory fill:#f0f7ff,stroke:#3498db,stroke-width:1.5px,rx:4px,ry:4px; classDef system fill:#f1f5f9,stroke:#64748b,stroke-width:1.5px; class PhysicalGPU cpu; class Crash memory;

📊 Limitation 3: No QoS Guarantees

What it means: Quality of Service (QoS) guarantees — such as minimum compute time, maximum latency, or predictable throughput — are not possible with time-slicing.

Key consequences: - Workloads compete for GPU time without any priority mechanism - A compute-heavy job can starve other workloads of GPU cycles - Latency for inference workloads becomes unpredictable because they must wait for other jobs to finish their time slices - There is no way to reserve a specific percentage of GPU compute for critical workloads - Performance varies based on the number and type of concurrent workloads

Real-world impact: A real-time video processing pipeline might experience frame drops or delays because a batch training job is consuming most of the GPU time slices.


🕵️ Comparison Table: Time-Slicing vs. MIG

Feature Time-Slicing MIG (Multi-Instance GPU)
Memory isolation ❌ No — shared VRAM ✅ Yes — dedicated memory per partition
Fault isolation ❌ No — one crash affects all ✅ Yes — hardware-level isolation
QoS guarantees ❌ No — best-effort scheduling ✅ Yes — guaranteed compute and memory
Configuration complexity Low — simple to enable High — requires partition setup
GPU support All modern NVIDIA GPUs A100, H100, and newer data center GPUs

🛠️ When to Use Time-Slicing Despite These Limitations

Time-slicing is still useful in specific scenarios where its limitations are acceptable:

  • Development and testing environments where workloads are non-critical and can tolerate interruptions
  • Low-utilization clusters where GPU contention is rare and workloads are small
  • Batch processing jobs where completion time is not critical and occasional delays are acceptable
  • Prototyping before moving to MIG or dedicated GPU allocation for production

✅ Summary for Engineers

Limitation What to Watch For Mitigation Strategy
No memory isolation Unexpected OOM errors in shared workloads Monitor GPU memory usage per process; set memory limits at the application level
No fault isolation Cascading failures across workloads Run critical workloads on dedicated GPUs or MIG partitions
No QoS guarantees Unpredictable latency and throughput Use MIG for production inference; reserve time-slicing for non-critical batch jobs

Key takeaway: Time-slicing is a simple sharing mechanism but lacks the hardware-level guarantees needed for production AI workloads. For environments requiring predictable performance, security, and reliability, consider using MIG or dedicated GPU allocation instead.