HAMi GPU 共享与调度
HAMi(原 Volcano vGPU)在 Kubernetes 上提供 GPU 共享、显存/算力切分和异构设备调度。它通过 device plugin、scheduler extender 和 webhook 让多个 Pod 共享同一张 GPU。
适合推理服务、开发环境和 GPU 利用率低的集群;训练大模型仍建议整卡或 MIG。
安装:
helm repo add hami-charts https://project-hami.github.io/HAMi/
helm install hami hami-charts/hami \
--namespace kube-system \
--set scheduler.kubeScheduler.imageTag=v1.30.0
kubectl -n kube-system get pods | grep hami
查看节点 GPU 资源:
kubectl get nodes -o json | jq '.items[].status.allocatable'
申请共享 GPU:
kubectl apply -f - <<'EOF'
apiVersion: v1
kind: Pod
metadata:
name: shared-gpu
spec:
containers:
- name: app
image: pytorch/pytorch:2.4.0-cuda12.1-cudnn9-runtime
resources:
limits:
nvidia.com/gpu: 1
nvidia.com/gpumem: 4096
nvidia.com/gpucores: 30
EOF
查看分配:
kubectl describe node <NODE> | grep -A10 'Allocated resources'
kubectl -n kube-system logs deploy/hami-scheduler -f
nvidia.com/gpumem 单位是 MiB,不是 GiB。nvidia.com/gpu 不申请显存/算力,可能仍独占整卡。