This guide covers different ways to launch the AORTA benchmark on CUDA and ROCm systems.
bash scripts/launch_rocm.sh config/default.yaml
bash scripts/launch_cuda.sh config/default.yaml
Both scripts:
config/default.yaml but accept an override as the first argumenttorch.cuda.device_count() to size --nproc_per_nodePYTHONPATH=$REPO_ROOT/src so the aorta package is discoverableFor more control over the launch:
torchrun --nproc_per_node 4 train.py --config config/default.yaml --override training.max_steps=100
Use dotted --override arguments to mutate configuration values without editing the YAML file.
Enable AOT compilation by toggling the compile block or CLI overrides:
torchrun --nproc_per_node 4 train.py \
--config config/default.yaml \
--override compile.enabled=true compile.backend=inductor compile.mode=max-autotune
torch.compile raises (logging the reason).torch.compile with backend=inductor is still experimental; the launcher automatically downgrades to the safer aot_eager backend when necessary.compile.backend=aot_eager).compile.fullgraph, compile.dynamic, or compile.options (passed directly to torch.compile) to match your workload characteristics.
To measure theoretical compute/SDMA overlap on ROCm without modifying the full training loop:
python scripts/run_sdma_prototype.py --device 0 --matrix-size 4096 --copy-mb 64
The script:
hipMemcpyAsync transfers on a high-priority streamUse rocprofv3 (or scripts/rocprof_capture.sh) against this benchmark to inspect SDMA engine utilization and validate whether transfers run concurrently with compute.