mindXtrain / ops /README.md
Gregory-L's picture
fork mindXtrain from GitHub (Professor-Codephreak/mindXtrain@661bd41) as the mindX-specific line
dfb775d verified
|
Raw History Blame Contribute Delete
1.65 kB
# Ops
Container, compose, Kubernetes, vmm, and Gensyn manifests for mindxtrain. Per
mindxtrain2.md Β§Part 4 (`ops/`).
## Layout
```
ops/
β”œβ”€β”€ containerfiles/
β”‚ β”œβ”€β”€ containerfile_train # FROM rocm/primus:v26.2 (training image)
β”‚ β”œβ”€β”€ containerfile_serve # FROM rocm/vllm-dev:rocm7.2.1 (inference image)
β”‚ └── digest.lock # SHA256 pins, populated post-pull
β”œβ”€β”€ compose/
β”‚ └── compose_dev.yaml # full stack: vLLM + operator FastAPI for the live demo
β”œβ”€β”€ k8s/
β”‚ └── train_job.yaml # single-MI300X training Job
β”œβ”€β”€ vmm/ # OpenBSD vmm vm definitions (post-hackathon)
└── gensyn/ # Gensyn distributed-training configs (post-hackathon)
```
## Build the train image (on the MI300X droplet)
```bash
podman build -f ops/containerfiles/containerfile_train -t mindxtrain/train:latest .
podman inspect --format '{{index .RepoDigests 0}}' mindxtrain/train:latest \
| tee -a ops/containerfiles/digest.lock
```
## Build the serve image
```bash
podman build -f ops/containerfiles/containerfile_serve -t mindxtrain/serve:latest .
```
## Run the demo stack
```bash
podman-compose -f ops/compose/compose_dev.yaml up -d
# vLLM-ROCm at :8000, mindxtrain operator FastAPI at :8080
```
## Submit the K8s training job
```bash
kubectl create configmap mindxtrain-run-config --from-file=run.yaml=run.yaml
kubectl apply -f ops/k8s/train_job.yaml
kubectl logs -f job/mindxtrain-job
```
The Job spec assumes a node labeled `accelerator: mi300x` and the AMD ROCm
device plugin (`amd.com/gpu` resource).