Update integration config for InfiniBand GPU environment

- Add IB CNI annotation (hostdevice-net), /dev/shm, /dev/infiniband mounts
- Add nvidia.com/hostdev: 2 resource for IB NICs
- Add privileged securityContext with IPC_LOCK for NCCL
- Add NCCL env vars (NCCL_DEBUG, NCCL_IB_DISABLE=0, NCCL_SOCKET_IFNAME)
- Set image to nvcr.io/nvidia/pytorch:24.10-py3
- Set numNodes: 2 for multi-node distributed training

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
selee 2026-02-10 15:57:03 +09:00
parent 6b72590351
commit f62425843b
1 changed files with 40 additions and 6 deletions

View File

@ -12,10 +12,11 @@ spec:
weight: 1
reclaimable: true
capability:
# TODO: Adjust based on your cluster capacity
# 3노드 x GPU 8장 = 24, hostdev 2개 = 6
cpu: "100"
memory: "512Gi"
nvidia.com/gpu: "24"
nvidia.com/hostdev: "6"
---
# 2. ClusterTrainingRuntime with Volcano gang scheduling + topology-aware scheduling
@ -30,7 +31,7 @@ spec:
mlPolicy:
torch:
numProcPerNode: 8
numNodes: 1
numNodes: 2
# Volcano gang scheduling 활성화 - PodGroup 자동 생성
podGroupPolicy:
volcano:
@ -48,15 +49,47 @@ spec:
template:
spec:
template:
metadata:
annotations:
# InfiniBand CNI
k8s.v1.cni.cncf.io/networks: hostdevice-net
spec:
containers:
- name: node
image: ghcr.io/kubeflow/trainer/torch-runtime:latest
image: nvcr.io/nvidia/pytorch:24.10-py3
securityContext:
privileged: true
capabilities:
add:
- IPC_LOCK
env:
- name: NCCL_DEBUG
value: "INFO"
- name: NCCL_IB_DISABLE
value: "0"
- name: NCCL_SOCKET_IFNAME
value: "net"
resources:
requests:
nvidia.com/gpu: "8"
nvidia.com/hostdev: "2"
limits:
nvidia.com/gpu: "8"
nvidia.com/hostdev: "2"
volumeMounts:
- name: shared-memory
mountPath: /dev/shm
- name: infiniband
mountPath: /dev/infiniband
volumes:
- name: shared-memory
emptyDir:
medium: Memory
sizeLimit: 128Gi
- name: infiniband
hostPath:
path: /dev/infiniband
type: Directory
---
# 3. Example TrainJob (설치 테스트용 - 단일노드)
@ -72,11 +105,12 @@ spec:
name: torch-distributed-volcano
trainer:
# TODO: Replace with your actual training image
image: docker.io/your-org/your-training-image:latest
numNodes: 1
numProcPerNode: "8"
image: nvcr.io/nvidia/pytorch:24.10-py3
numNodes: 2
resourcesPerNode:
requests:
nvidia.com/gpu: "8"
nvidia.com/hostdev: "2"
limits:
nvidia.com/gpu: "8"
nvidia.com/hostdev: "2"