- Pod 네이밍 패턴 상세 설명 (torch replica vs custom completion)
- TF_CONFIG 설정 순서 주의사항 (import 전 필수)
- CIFAR-10 로컬 로딩 설명
- InfiniBand + NCCL 통신 구조
- 트러블슈팅 섹션 추가 (incarnation 에러, DNS 감지, 데이터 다운로드)
- env 오버라이드 예시
- volcano-trainjob-integration.yaml 파일 구조에서 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. Pod hostname 패턴 수정: node-{i}-0 → node-0-{i}
mlPolicy에 framework 없으면 numNodes가 completions로 매핑됨
(단일 Job, completions=numNodes)
2. TF_CONFIG를 import tensorflow 전에 설정
TF는 import 시 GPU 감지 + gRPC 서버 시작하므로
TF_CONFIG가 없는 상태에서 import하면 incarnation 에러 발생
3. CIFAR-10 로컬 hostPath 볼륨 마운트 추가
tf.keras.datasets.cifar10.load_data() 대신 로컬 pickle 파일 로드
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
numNodes 변경 시 NUM_WORKERS를 수동 동기화해야 하는 문제 해결.
discover_workers()가 DNS 프로빙으로 워커 수를 자동 감지하므로
TrainJob에서 numNodes만 변경하면 됨.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Trainer v2에는 TensorFlow runtime이 기본 제공되지 않으므로
Custom ClusterTrainingRuntime을 생성하여 MultiWorkerMirroredStrategy 기반
분산학습을 지원한다. Pod hostname + Headless Service DNS로 TF_CONFIG를 자동 구성.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>