ghcr.io/coreweave/ml-containers and built from the public coreweave/ml-containers repository, where you can inspect the Dockerfiles to see exactly what each image installs.
Available images
The following PyTorch images are the recommended starting points for most customers.
To browse every published image and its tags, see the packages list.
PyTorch base images (torch)
Theml-containers/torch image contains custom builds of PyTorch, torchvision, and torchaudio, each tuned for use on the CoreWeave platform.
Each image is built on an Ubuntu LTS release. The image tag indicates the Ubuntu version, which in turn determines the Python version.
Image variants
CoreWeave builds two variants of thetorch image. Both variants are also available for torch-extras.
base: Includes only the essentials (CUDA, torch, torchvision, and torchaudio). This variant has a small image size, which makes it fast to launch. It isn’t built onnccl-tests, so it lacks networking libraries such as HPC-X, and it omits the CUDA development libraries apart fromnvcc.nccl: Built onnccl-tests, so it includes the networking libraries tuned for the CoreWeave platform. It also includes the development libraries and build tools, such asnvcc, that are required to compile other PyTorch extensions. This variant is larger thanbase.
The
nccl variant is the recommended choice for most workloads. For more details on the networking stack it inherits, see coreweave/nccl-tests. To pick between torch, torch-extras, and nccl-tests for your workload, see Choose and troubleshoot a training container image.PyTorch extras (torch-extras)
Theml-containers/torch-extras image extends the torch image with a set of common PyTorch extensions, including DeepSpeed, xformers, and NVIDIA Apex. (FlashAttention is already included in the base torch image.) Each extension is compiled against the custom PyTorch builds in the torch image.
For the complete, current list of included extensions, see the coreweave/ml-containers repository.
Both the base and nccl variants are available for torch-extras, matching those provided for torch. The base variant stays small because it uses a multi-stage build that avoids including CUDA development libraries, even though those libraries are required to build the extensions.
Customers running supervised fine-tuning, reinforcement learning, pretraining, or any multi-node PyTorch training should start with torch-extras.
Nightly images
Thenightly-torch image is an experimental, nightly release channel of the PyTorch base images, in the style of PyTorch’s own nightly preview builds. It features the latest development versions of torch, torchvision, and torchaudio, pulled daily and compiled from source. The nightly-torch-extras image builds the PyTorch extensions on top of nightly-torch.
Read an image tag
Image tags encode the component versions that most often affect compatibility. For example:
Not every tag carries every field. A
base tag omits the NCCL version, because that variant doesn’t bundle the NCCL build, and a nightly tag adds a build date after the variant. Current builds always use abi1, and CoreWeave plans to drop the ABI field from future tags.
The tag is a summary. Extension versions such as FlashAttention and DeepSpeed, and the HPC-X version, aren’t in it. For the complete list of components in a build, check the coreweave/ml-containers repository at the commit in the tag.
Because tags change as CoreWeave publishes new builds, always get the current tag from the packages list.
A tag that starts with a name prefix rather than a commit is a branch build rather than a production build. See Use unprefixed tags in production.
Match the CUDA version to your GPU driver
Choose an image whose CUDA version is compatible with the GPU driver on your nodes. Don’t assume the newest image is the right one. A recently published image can use a CUDA version that’s newer than your nodes’ driver supports. When this happens, workloads fail to start with driver-compatibility errors. You can check the driver version on a node by runningnvidia-smi.
For the minimum driver each CUDA version requires, and for how to diagnose image-related failures, see Choose and troubleshoot a training container image.
SUNK nodes inject GPU drivers into the container. They don’t provide the full CUDA toolkit. If a job can detect GPUs but fails to load libraries such as libcusparseLt.so.0, see Why are CUDA toolkit libraries missing in a SUNK container?.
Use an image
After you’ve chosen an image and a tag, you can use an ML container image as a base for your own custom image, or run it directly on CKS or SUNK. In the following examples, replace[TAG] with a tag from the packages list.
Build a custom image
To add your own dependencies, use an ML container image as the base image in a Dockerfile:Run on CKS
Reference the image in theimage field of a Pod specification:
Run on SUNK
SUNK uses Pyxis and Enroot to run containers. Pass the image tosrun with the --container-image flag. In the container URI, a # separates the registry host from the image path:
Additional resources
For more information, see the following resources:coreweave/ml-containersrepository: Dockerfiles and source for all images.- Packages list: every published image and its current tags.
- Slurm images: the SUNK-built
slurm-containersimages for the Slurm control plane and nodes. - Create custom images for SUNK Standard: customize a published image for SUNK.
- Introduction to third-party frameworks: frameworks supported on CKS and SUNK.