Skip to main content
Version: 3.0.0-alpha (Diátaxis)

FAQ — GPU

What GPU models are available?

Hikube offers three NVIDIA GPU families:

GPUArchitectureMemoryUse case
L40SAda Lovelace48 GB GDDR6Inference, graphical rendering
A100Ampere80 GB HBM2eML training, scientific computing
H100Hopper80 GB HBM3LLM, exascale computing

Identifiers to use in manifests:

gpus:
- name: "nvidia.com/AD102GL_L40S" # L40S
- name: "nvidia.com/GA100_A100_PCIE_80GB" # A100
- name: "nvidia.com/H100_94GB" # H100

What is the difference between GPU in VM and GPU in Kubernetes?

AspectGPU in VMGPU in Kubernetes
Access modeExclusive PCI passthroughShared via device plugin
IsolationGPU dedicated to the VMScheduling orchestrated by K8s
Driver installationManual (cloud-init)Automatic (GPU Operator)
Use caseDedicated workstation, CUDA devContainerized workloads, batch

In a VM, the GPU is directly attached via PCI passthrough: the VM has exclusive access to the hardware. In Kubernetes, the GPU Operator manages drivers and scheduling allows sharing GPU resources across multiple pods.


For optimal usage, plan for 8 to 16 vCPU per GPU. Universal (u1) instances with a 1:4 ratio are recommended:

ConfigurationInstancevCPURAM
1 GPUu1.2xlarge832 GB
1 GPU (intensive)u1.4xlarge1664 GB
Multi-GPUu1.8xlarge32128 GB

How are NVIDIA drivers installed?

Installation depends on the usage mode:

In a VM: install manually via cloud-init at boot:

vm-gpu.yaml
spec:
cloudInit: |
#cloud-config
runcmd:
- apt-get update
- apt-get install -y linux-headers-$(uname -r)
- apt-get install -y nvidia-driver-550 nvidia-utils-550

In Kubernetes: enable the GPU Operator addon which automatically installs drivers on GPU nodes:

cluster-gpu.yaml
spec:
addons:
gpuOperator:
enabled: true

How do I verify that the GPU is detected?

In a VM:

nvidia-smi

This command displays detected GPUs, their memory usage, and active processes.

In Kubernetes:

kubectl get nodes -o json | jq '.items[].status.allocatable["nvidia.com/gpu"]'

You can also verify from within a pod:

kubectl exec -it <pod-name> -- nvidia-smi

How do I request a GPU in a Kubernetes pod?

Specify the nvidia.com/gpu resource in the container limits:

pod-gpu.yaml
apiVersion: v1
kind: Pod
metadata:
name: gpu-workload
spec:
containers:
- name: cuda-app
image: nvidia/cuda:12.0-base
resources:
limits:
nvidia.com/gpu: 1
note

The number of GPUs requested in limits must correspond to physical GPUs available on the nodes. A pod cannot request a fraction of a GPU.