From 1f3ebc5f655a14408d6e2fa410cc5ba20f833c7f Mon Sep 17 00:00:00 2001 From: Victor Skvortsov Date: Tue, 20 May 2025 15:18:05 +0500 Subject: [PATCH] Support new Azure CPU series --- scripts/packer/azure-image-cuda.json | 2 +- scripts/packer/azure-image-grid.json | 2 +- scripts/packer/azure-image.json | 2 +- scripts/publish_azure_image.sh | 5 +++-- src/dstack/_internal/core/backends/azure/compute.py | 12 +++++++----- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/scripts/packer/azure-image-cuda.json b/scripts/packer/azure-image-cuda.json index 34d4e2758..cd455e138 100644 --- a/scripts/packer/azure-image-cuda.json +++ b/scripts/packer/azure-image-cuda.json @@ -6,7 +6,7 @@ "azure_tenant_id": "{{env `AZURE_TENANT_ID`}}", "azure_subscription_id": "{{env `AZURE_SUBSCRIPTION_ID`}}", "azure_location": "westeurope", - "azure_vm_size": "Standard_DS1_v2", + "azure_vm_size": "Standard_D2s_v6", "build_prefix": "", "docker_version": "", "cuda_drivers_version": "", diff --git a/scripts/packer/azure-image-grid.json b/scripts/packer/azure-image-grid.json index d7a926e03..e9b570a79 100644 --- a/scripts/packer/azure-image-grid.json +++ b/scripts/packer/azure-image-grid.json @@ -6,7 +6,7 @@ "azure_tenant_id": "{{env `AZURE_TENANT_ID`}}", "azure_subscription_id": "{{env `AZURE_SUBSCRIPTION_ID`}}", "azure_location": "westeurope", - "azure_vm_size": "Standard_DS1_v2", + "azure_vm_size": "Standard_D2s_v6", "build_prefix": "", "docker_version": "", "image_version": "" diff --git a/scripts/packer/azure-image.json b/scripts/packer/azure-image.json index 3a0967328..4b9938f46 100644 --- a/scripts/packer/azure-image.json +++ b/scripts/packer/azure-image.json @@ -6,7 +6,7 @@ "azure_tenant_id": "{{env `AZURE_TENANT_ID`}}", "azure_subscription_id": "{{env `AZURE_SUBSCRIPTION_ID`}}", "azure_location": "westeurope", - "azure_vm_size": "Standard_DS1_v2", + "azure_vm_size": "Standard_D2s_v6", "build_prefix": "", "docker_version": "", "image_version": "" diff --git a/scripts/publish_azure_image.sh b/scripts/publish_azure_image.sh index fd253bd62..313969380 100755 --- a/scripts/publish_azure_image.sh +++ b/scripts/publish_azure_image.sh @@ -20,7 +20,7 @@ function get_image_definition { } # We create a separate image definition for each dstack version since -# gallery-image-version can't be in one-to-one correspondance with dstack versions +# gallery-image-version can't be in one-to-one correspondence with dstack versions # (it has to follow semver, e.g. no rc) function create_image_definition() { echo Creating image definition... @@ -33,7 +33,8 @@ function create_image_definition() { --sku $image_definition \ --os-type Linux \ --os-state generalized \ - --hyper-v-generation V2 + --hyper-v-generation V2 \ + --features DiskControllerTypes=SCSI,NVMe } function create_image_version() { diff --git a/src/dstack/_internal/core/backends/azure/compute.py b/src/dstack/_internal/core/backends/azure/compute.py index ebc112dc2..6847e7912 100644 --- a/src/dstack/_internal/core/backends/azure/compute.py +++ b/src/dstack/_internal/core/backends/azure/compute.py @@ -391,11 +391,8 @@ def get_image_name(self) -> str: _SUPPORTED_VM_SERIES_PATTERNS = [ - # TODO: Support newer CPU series (Dsv6, Esv6). - # They are NVMe-only and require marking the VM image as NVMe. - r"D(\d+)s_v3", # Dsv3-series (general purpose) - r"E(\d+)i?s_v4", # Esv4-series (memory optimized) - r"E(\d+)-(\d+)s_v4", # Esv4-series (constrained vCPU) + r"D(\d+)s_v6", # Dsv6-series (general purpose) + r"E(\d+)i?s_v6", # Esv6-series (memory optimized) r"F(\d+)s_v2", # Fsv2-series (compute optimized) r"NC(\d+)s_v3", # NCv3-series [V100 16GB] r"NC(\d+)as_T4_v3", # NCasT4_v3-series [T4] @@ -404,6 +401,11 @@ def get_image_name(self) -> str: r"NC(\d+)ads_A100_v4", # NC A100 v4-series [A100 80GB] r"ND(\d+)asr_v4", # ND A100 v4-series [8xA100 40GB] r"ND(\d+)amsr_A100_v4", # NDm A100 v4-series [8xA100 80GB] + # Deprecated series + # TODO: Remove after several releases + r"D(\d+)s_v3", # Dsv3-series (general purpose) + r"E(\d+)i?s_v4", # Esv4-series (memory optimized) + r"E(\d+)-(\d+)s_v4", # Esv4-series (constrained vCPU) ] _SUPPORTED_VM_SERIES_PATTERN = ( "^Standard_(" + "|".join(f"({s})" for s in _SUPPORTED_VM_SERIES_PATTERNS) + ")$"