From 106fd28a807facd62198e61393d8e12562222ec8 Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Fri, 3 Jul 2026 11:43:23 +0500 Subject: [PATCH 1/7] Drop P100 in GCP and OCI --- src/dstack/_internal/core/backends/gcp/compute.py | 2 +- src/dstack/_internal/core/backends/oci/compute.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/dstack/_internal/core/backends/gcp/compute.py b/src/dstack/_internal/core/backends/gcp/compute.py index 86544b112f..3be1255d8e 100644 --- a/src/dstack/_internal/core/backends/gcp/compute.py +++ b/src/dstack/_internal/core/backends/gcp/compute.py @@ -1014,7 +1014,7 @@ def _is_supported_gcp_instance(instance_name: str, gpu_name: Optional[str]) -> b ]: if instance_name.startswith(family): return True - if gpu_name is not None and gpu_name not in {"K80", "P4"}: + if gpu_name is not None and gpu_name not in {"K80", "P4", "P100"}: return True return False diff --git a/src/dstack/_internal/core/backends/oci/compute.py b/src/dstack/_internal/core/backends/oci/compute.py index f5a6c8439b..ceaffcf030 100644 --- a/src/dstack/_internal/core/backends/oci/compute.py +++ b/src/dstack/_internal/core/backends/oci/compute.py @@ -43,8 +43,6 @@ "BM.Standard.E4.", "BM.Standard.E5.", "BM.Optimized3.", - "VM.GPU2.", - "BM.GPU2.", "VM.GPU3.", "BM.GPU3.", "BM.GPU4.", From 7f544ebe77193d68bdab774c2e287981b9883357 Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Fri, 3 Jul 2026 12:01:47 +0500 Subject: [PATCH 2/7] Expand image reference documentation --- .../_internal/core/models/configurations.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/dstack/_internal/core/models/configurations.py b/src/dstack/_internal/core/models/configurations.py index 900dca8ce7..2aab13233e 100644 --- a/src/dstack/_internal/core/models/configurations.py +++ b/src/dstack/_internal/core/models/configurations.py @@ -487,9 +487,18 @@ class BaseRunConfiguration(CoreModel): Optional[str], Field(description="The run name. If not specified, a random name is generated"), ] = None - image: Annotated[Optional[str], Field(description="The name of the Docker image to run")] = ( - None - ) + image: Annotated[ + Optional[str], + Field( + description=( + "The name of the Docker image to run." + " If no `image` is specified, `dstack` uses an Ubuntu 24.04-based Docker image that comes pre-configured" + " with `uv`, `python`, `pip`, the CUDA 13.0 runtime, InfiniBand, NCCL, and NCCL tests." + " It may also include provider-specific components such as EFA support on AWS." + " For non-Nvidia accelerators or NVidia GPUs unsupported by CUDA 13.0 (e.g. V100, P100), specify a custom Docker image." + ) + ), + ] = None user: Annotated[ Optional[str], Field( From c6d4b8ffa739f1a2ca79bbbe420bc22250b68b66 Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Fri, 3 Jul 2026 14:09:07 +0500 Subject: [PATCH 3/7] Update to cuda:13.0.3 --- docker/base/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index 6c01f2e94d..7d38636886 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -5,7 +5,7 @@ ARG UBUNTU_VERSION # (base / devel / devel-efa). # ============================================================================ -FROM nvidia/cuda:12.8.2-base-ubuntu${UBUNTU_VERSION}.04 AS common +FROM nvidia/cuda:13.0.3-base-ubuntu${UBUNTU_VERSION}.04 AS common # ARGs before FROM must be redeclared to be used after FROM ARG UBUNTU_VERSION @@ -60,7 +60,7 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | INSTALLER_NO_MODIFY_PATH=1 sh \ # builder: builds NCCL and nccl-tests from source for the base/devel flavors. # ============================================================================ -FROM nvidia/cuda:12.8.2-base-ubuntu${UBUNTU_VERSION}.04 AS builder +FROM nvidia/cuda:13.0.3-base-ubuntu${UBUNTU_VERSION}.04 AS builder ENV NCCL_HOME=/opt/nccl ENV CUDA_HOME=/usr/local/cuda @@ -86,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive \ python3 \ build-essential -ARG NCCL_VERSION=2.26.2-1 +ARG NCCL_VERSION=2.30.7-1 RUN cd /tmp \ && git clone https://github.com/NVIDIA/nccl.git -b v${NCCL_VERSION} \ @@ -167,7 +167,7 @@ RUN cd /tmp \ && ./efa_installer.sh -y --skip-kmod -g \ && rm -rf /tmp/aws-efa-installer /var/lib/apt/lists/* -ARG NCCL_VERSION=2.27.7-1 +ARG NCCL_VERSION=2.30.7-1 RUN cd /tmp \ && git clone https://github.com/NVIDIA/nccl.git -b v${NCCL_VERSION} \ From 1a6d017e10f97b53b41c419b9c7459789077977d Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Mon, 6 Jul 2026 09:43:27 +0500 Subject: [PATCH 4/7] Set NCCL_VERSION=2.28.3-1 --- docker/base/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index 7d38636886..36da212b75 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -86,7 +86,7 @@ RUN export DEBIAN_FRONTEND=noninteractive \ python3 \ build-essential -ARG NCCL_VERSION=2.30.7-1 +ARG NCCL_VERSION=2.28.3-1 RUN cd /tmp \ && git clone https://github.com/NVIDIA/nccl.git -b v${NCCL_VERSION} \ @@ -167,7 +167,7 @@ RUN cd /tmp \ && ./efa_installer.sh -y --skip-kmod -g \ && rm -rf /tmp/aws-efa-installer /var/lib/apt/lists/* -ARG NCCL_VERSION=2.30.7-1 +ARG NCCL_VERSION=2.28.3-1 RUN cd /tmp \ && git clone https://github.com/NVIDIA/nccl.git -b v${NCCL_VERSION} \ From ae6e531e15a9c3892905ab2b148ff3fa10fc1c0f Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Mon, 6 Jul 2026 10:49:39 +0500 Subject: [PATCH 5/7] Bump Verda OS image version --- src/dstack/_internal/core/backends/verda/compute.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dstack/_internal/core/backends/verda/compute.py b/src/dstack/_internal/core/backends/verda/compute.py index 1bcd6ae44e..c3ff2a05a9 100644 --- a/src/dstack/_internal/core/backends/verda/compute.py +++ b/src/dstack/_internal/core/backends/verda/compute.py @@ -234,14 +234,15 @@ def update_provisioning_data( def _get_vm_image_id(instance_offer: InstanceOfferWithAvailability) -> str: - # https://api.verda.com/v1/images + # https://api.datacrunch.io/v1/docs#tag/images/GET/v1/images if len(instance_offer.instance.resources.gpus) > 0 and instance_offer.instance.resources.gpus[ 0 ].name in ["V100", "A6000"]: + # * A6000: Verda returns "Operating system is not valid for this instance type" for newer images # Ubuntu 22.04 + CUDA 12.0 + Docker return "2088da25-bb0d-41cc-a191-dccae45d96fd" - # Ubuntu 24.04 + CUDA 12.8 Open + Docker - return "77777777-4f48-4249-82b3-f199fb9b701b" + # Ubuntu 24.04 + CUDA 13.0 Open + Docker + return "2404f580-1300-1111-82b3-f199fb9b701b" def _create_ssh_key(client: VerdaClient, name: str, public_key: str) -> str: From 1d52445306559bfeb0b9b8fe08045b0e30da9007 Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Mon, 6 Jul 2026 15:11:28 +0500 Subject: [PATCH 6/7] Fix runner/README.md --- runner/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/README.md b/runner/README.md index 056031fe0c..92b6435d54 100644 --- a/runner/README.md +++ b/runner/README.md @@ -68,7 +68,7 @@ Build the runner and shim and upload them to S3 using `just` (see [`justfile`](j > These variables are required and must be set before running any upload commands. ```shell -just upload +just upload-runner ``` To use the built shim and runner with the `dstack` server, pass the URLs via `DSTACK_SHIM_DOWNLOAD_URL` and `DSTACK_RUNNER_DOWNLOAD_URL`: From d8bb309a6585e6a29af2e8d1f4cd6dca2793fd8e Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Mon, 6 Jul 2026 15:17:47 +0500 Subject: [PATCH 7/7] Set docker_base_image = "0.15" --- src/dstack/version.py | 2 +- src/tests/_internal/server/routers/test_runs.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dstack/version.py b/src/dstack/version.py index b912a6c2df..2aabb7debd 100644 --- a/src/dstack/version.py +++ b/src/dstack/version.py @@ -5,6 +5,6 @@ __version__ = "0.0.0" __is_release__ = False -docker_base_image = "0.14" +docker_base_image = "0.15" docker_base_image_ubuntu_version = "24.04" vm_base_image = "0.14" diff --git a/src/tests/_internal/server/routers/test_runs.py b/src/tests/_internal/server/routers/test_runs.py index 7fc21ac2ff..fdc5a8f355 100644 --- a/src/tests/_internal/server/routers/test_runs.py +++ b/src/tests/_internal/server/routers/test_runs.py @@ -155,7 +155,7 @@ def get_dev_env_run_plan_dict( " && tail -f /dev/null" ), ] - image_name = "dstackai/base:0.14-base-ubuntu24.04" + image_name = "dstackai/base:0.15-base-ubuntu24.04" run_spec = { "configuration": { @@ -397,7 +397,7 @@ def get_dev_env_run_dict( " && tail -f /dev/null" ), ] - image_name = "dstackai/base:0.14-base-ubuntu24.04" + image_name = "dstackai/base:0.15-base-ubuntu24.04" return { "id": run_id,