Skip to content

Using Enroot on AMD Accelerator Cloud

This page explains how to import Docker images into Enroot, manage containers, and integrate Enroot with Slurm through the Pyxis plugin. It is intended for researchers, developers, and system administrators working with AAC compute nodes.

Importing Docker Images into Enroot

Public Images

To import a public docker image into enroot:

enroot import docker://<full_image_path>
# Example:
enroot import docker://rocm/pytorch-training:v25.5

Private Images (Requires Authentication)

Interactive Entry (Manual Password)

Run the command with your username; Enroot will prompt for the password/token.

enroot import docker://<username>@<private_image_path>

Stored Credentials (Automated)

Store your login details in the credentials file to avoid manual input. Location: $HOME/.config/enroot/.credentials

machine auth.docker.io login <docker_username> password <docker_password_or_pat>
machine index.docker.io login <docker_username>

Basic Container Lifecycle

Create container from image

enroot create <image_name.sqsh>

List containers

enroot list -f

Start container interactively

enroot start <container_name>
Tip: Keep .sqsh images in a shared read-only directory for compute nodes.

Remove container

enroot remove <container_name>

Using Enroot with Slurm (Pyxis)

# Example srun command to run a containerized job:
srun --container-image=/shareddata/amd_int/aac/venkatesh/megatron-lm+v25.5_py310.sqsh \
--container-writable \
--container-workdir="/workspace/Megatron-LM" \
--container-env="TOKENIZER_MODEL,MOCK_DATA,HF_TOKEN" \
bash -c "TEE_OUTPUT=1 MBS=2 BS=128 TP=1 TE_FP8=1 SEQ_LENGTH=8192 MODEL_SIZE=8 /workspace/Megatron-LM/examples/llama/train_llama3.sh"
Note: `srun --help | grep container` will list all the available options which can be used when using enroot with slurm