Skip to main content

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.