GPU Hardware Classes | Kamiwaza Docs

Version: 1.0.1 (Latest)

Kamiwaza model placement specializes its behavior by hardware class — a classification of how a GPU's memory is built and how it can be shared. The class determines which placement primitive Kamiwaza uses, how many models can share a device, and what isolation you can expect between them.

If you have not read it yet, start with the Model Placement Overview, which introduces the three classes through practical examples.

The class table

Class Members Placement primitive Isolation
Hardware-isolated NVIDIA MIG-capable cards (A100, H100, B100) with MIG enabled; AMD Instinct MI300+ with partitioning enabled One model per hardware partition (for example, a MIG slice requested as nvidia.com/mig-2g.20gb) Hardware: dedicated memory and fault isolation per partition
Software-shared Discrete-memory GPUs without hardware partitioning: T4, L4, A100/H100 with MIG disabled, and similar; also covers admin-configured time-slicing or MPS on managed clusters Fractional per-GPU memory budgets in GB, or the cluster's configured sharing strategy, or whole-GPU exclusive Software: memory budgets are enforced when the model is scheduled; co-located models share compute and faults
Unified memory Apple Silicon (M-series), AMD Strix Halo, NVIDIA DGX Spark (GB10 Grace-Blackwell) Budget against the aggregate system memory pool Process-level only: concurrent models share the GPU through the OS scheduler

In deployment details these appear as the hardware_class values hardware_isolated, software_shared, and unified_memory.

Hardware-isolated

When a cluster admin enables MIG on an NVIDIA card (or partitioning on an AMD Instinct accelerator), the card is divided into fixed partitions, each with its own memory and fault domain. Kamiwaza picks a partition profile that fits the model's estimated footprint and requests it — for example, a 2g.20gb MIG slice for a model estimated under 20 GB.

What to expect:

Software-shared

A discrete GPU without hardware partitioning has one VRAM pool and no hardware fences. Kamiwaza shares it by accounting:

What to expect:

Unified memory

Apple Silicon, AMD Strix Halo, and NVIDIA DGX Spark machines have a single memory pool shared by the CPU and GPU. There is no separate VRAM to slice, so unified-memory placement is its own algorithm, not a one-slot variant of discrete-GPU placement:

How Kamiwaza detects the class

Detection is automatic, driven by node labels — you never set the class yourself.

Label Meaning
kamiwaza.ai/gpu-memory-class unified or discrete — the unified-memory signal
kamiwaza.ai/gpu-memory-mb Detected GPU (or shared-pool) memory. The value is in MiB, despite the label name
kamiwaza.ai/gpu-vendor GPU vendor

On a standalone cluster you can inspect the labels directly:

kubectl get node <node-name> -o jsonpath='{.metadata.labels}' | tr ',' '\n' | grep gpu

If a node's GPU labels are incomplete, the deployment surfaces a PartialDiscovery notice naming the missing labels, and placement proceeds with conservative assumptions (for example, sharing is treated as not configured). A node whose capacity labels are missing cannot be budgeted, so it will not win placement until those labels are present.