dstack 0.19.22__py3-none-any.whl → 0.19.23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dstack might be problematic. Click here for more details.

@@ -74,6 +74,7 @@ SETUP_COMMANDS = [
74
74
  SUPPORTED_PLATFORMS = [
75
75
  "gpu-h100-sxm",
76
76
  "gpu-h200-sxm",
77
+ "gpu-b200-sxm",
77
78
  "gpu-l40s-a",
78
79
  "gpu-l40s-d",
79
80
  "cpu-d3",
@@ -150,12 +151,16 @@ class NebiusCompute(
150
151
  )
151
152
  if backend_data.cluster is not None:
152
153
  cluster_id = backend_data.cluster.id
154
+
155
+ gpus = instance_offer.instance.resources.gpus
153
156
  create_disk_op = resources.create_disk(
154
157
  sdk=self._sdk,
155
158
  name=instance_name,
156
159
  project_id=self._region_to_project_id[instance_offer.region],
157
160
  size_mib=instance_offer.instance.resources.disk.size_mib,
158
- image_family="ubuntu22.04-cuda12",
161
+ image_family="ubuntu24.04-cuda12"
162
+ if gpus and gpus[0].name == "B200"
163
+ else "ubuntu22.04-cuda12",
159
164
  )
160
165
  create_instance_op = None
161
166
  try:
@@ -180,6 +185,7 @@ class NebiusCompute(
180
185
  cluster_id=cluster_id,
181
186
  disk_id=create_disk_op.resource_id,
182
187
  subnet_id=self._get_subnet_id(instance_offer.region),
188
+ preemptible=instance_offer.instance.resources.spot,
183
189
  )
184
190
  _wait_for_instance(self._sdk, create_instance_op)
185
191
  except BaseException:
@@ -367,4 +373,4 @@ def _wait_for_instance(sdk: SDK, op: SDKOperation[Operation]) -> None:
367
373
 
368
374
  def _supported_instances(offer: InstanceOffer) -> bool:
369
375
  platform, _ = offer.instance.name.split()
370
- return platform in SUPPORTED_PLATFORMS and not offer.instance.resources.spot
376
+ return platform in SUPPORTED_PLATFORMS
@@ -21,6 +21,7 @@ INFINIBAND_FABRICS = [
21
21
  InfinibandFabric("fabric-6", "gpu-h100-sxm", "eu-north1"),
22
22
  InfinibandFabric("fabric-7", "gpu-h200-sxm", "eu-north1"),
23
23
  InfinibandFabric("us-central1-a", "gpu-h200-sxm", "us-central1"),
24
+ InfinibandFabric("us-central1-b", "gpu-b200-sxm", "us-central1"),
24
25
  ]
25
26
 
26
27
 
@@ -28,10 +28,12 @@ from nebius.api.nebius.compute.v1 import (
28
28
  GpuClusterSpec,
29
29
  Instance,
30
30
  InstanceGpuClusterSpec,
31
+ InstanceRecoveryPolicy,
31
32
  InstanceServiceClient,
32
33
  InstanceSpec,
33
34
  IPAddress,
34
35
  NetworkInterfaceSpec,
36
+ PreemptibleSpec,
35
37
  PublicIPAddress,
36
38
  ResourcesSpec,
37
39
  SourceImageFamily,
@@ -283,6 +285,7 @@ def create_instance(
283
285
  cluster_id: Optional[str],
284
286
  disk_id: str,
285
287
  subnet_id: str,
288
+ preemptible: bool,
286
289
  ) -> SDKOperation[Operation]:
287
290
  client = InstanceServiceClient(sdk)
288
291
  request = CreateInstanceRequest(
@@ -306,6 +309,12 @@ def create_instance(
306
309
  public_ip_address=PublicIPAddress(static=True),
307
310
  )
308
311
  ],
312
+ preemptible=PreemptibleSpec(
313
+ priority=1, on_preemption=PreemptibleSpec.PreemptionPolicy.STOP
314
+ )
315
+ if preemptible
316
+ else None,
317
+ recovery_policy=InstanceRecoveryPolicy.FAIL if preemptible else None,
309
318
  ),
310
319
  )
311
320
  with wrap_capacity_errors():
dstack/version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.19.22"
1
+ __version__ = "0.19.23"
2
2
  __is_release__ = True
3
3
  base_image = "0.10"
4
4
  base_image_ubuntu_version = "22.04"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dstack
3
- Version: 0.19.22
3
+ Version: 0.19.23
4
4
  Summary: dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
5
5
  Project-URL: Homepage, https://dstack.ai
6
6
  Project-URL: Source, https://github.com/dstackai/dstack
@@ -73,7 +73,7 @@ Requires-Dist: grpcio>=1.50; extra == 'all'
73
73
  Requires-Dist: httpx; extra == 'all'
74
74
  Requires-Dist: jinja2; extra == 'all'
75
75
  Requires-Dist: kubernetes; extra == 'all'
76
- Requires-Dist: nebius<0.3,>=0.2.19; (python_version >= '3.10') and extra == 'all'
76
+ Requires-Dist: nebius<0.3,>=0.2.40; (python_version >= '3.10') and extra == 'all'
77
77
  Requires-Dist: oci>=2.150.0; extra == 'all'
78
78
  Requires-Dist: prometheus-client; extra == 'all'
79
79
  Requires-Dist: pyopenssl>=23.2.0; extra == 'all'
@@ -259,7 +259,7 @@ Requires-Dist: fastapi; extra == 'nebius'
259
259
  Requires-Dist: grpcio>=1.50; extra == 'nebius'
260
260
  Requires-Dist: httpx; extra == 'nebius'
261
261
  Requires-Dist: jinja2; extra == 'nebius'
262
- Requires-Dist: nebius<0.3,>=0.2.19; (python_version >= '3.10') and extra == 'nebius'
262
+ Requires-Dist: nebius<0.3,>=0.2.40; (python_version >= '3.10') and extra == 'nebius'
263
263
  Requires-Dist: prometheus-client; extra == 'nebius'
264
264
  Requires-Dist: python-dxf==12.1.0; extra == 'nebius'
265
265
  Requires-Dist: python-json-logger>=3.1.0; extra == 'nebius'
@@ -1,5 +1,5 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=Gl3c8oxrYfwUqabUNsmn7Kx6SwS3e0uknRX6CAGWnoY,102
2
+ dstack/version.py,sha256=0HSLyRZqAVZeojp03n1Cu7XPwrNB1AAElwNjq0Xfvps,102
3
3
  dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
5
5
  dstack/_internal/settings.py,sha256=FYtd7tRk17Oc62Kl_3O8NuT5JHb8TKhLThl1TsfjjVs,1390
@@ -123,11 +123,11 @@ dstack/_internal/core/backends/local/backend.py,sha256=KJuNXUXrg60NhLywnExD1EXH2
123
123
  dstack/_internal/core/backends/local/compute.py,sha256=-FUD8Ii5VTBtygAV1U3k1j10MFdK1whGvrSeRwTk29Y,3788
124
124
  dstack/_internal/core/backends/nebius/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
125
  dstack/_internal/core/backends/nebius/backend.py,sha256=2XqZIbSR8VzlfOnuVklXlDxNmwAkQj7txQN8VXF1j2E,566
126
- dstack/_internal/core/backends/nebius/compute.py,sha256=OUNvDk9rU13NR0CADFqn7nQL8kxgSvL7kbNEV4cLzyQ,14761
126
+ dstack/_internal/core/backends/nebius/compute.py,sha256=87etdeEaFjfOITJnPjvf0KYD8IrvNTdYRefwhxWYxZA,14951
127
127
  dstack/_internal/core/backends/nebius/configurator.py,sha256=ML2KCD6Ddxc2f6X1juxqKulUcOjF6uJk20_0Teyi65A,3072
128
- dstack/_internal/core/backends/nebius/fabrics.py,sha256=jC7ngUO54rXbyXI4hkl5_9GdBk7h4Ivyh88CH4S37ds,1546
128
+ dstack/_internal/core/backends/nebius/fabrics.py,sha256=-X-nSPV2pUin2PAYDHGm-j14KPboIFRpLi93PKHUXTM,1616
129
129
  dstack/_internal/core/backends/nebius/models.py,sha256=UudYX32p-ZY-GWR83VEtY5dpZBaWhKXQIfn2nrBCq-4,4245
130
- dstack/_internal/core/backends/nebius/resources.py,sha256=hx_VqiaurGO0MYT2KEvMl9EYdcglBRQsWSY5kHKjR00,12163
130
+ dstack/_internal/core/backends/nebius/resources.py,sha256=F4XqayzZ3VaDryqwtHRykMpDoTSrNK7JU0iMzY8WDmo,12502
131
131
  dstack/_internal/core/backends/oci/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
132
  dstack/_internal/core/backends/oci/auth.py,sha256=8Cr18y_LOsyRP-16yfFpT70Cofpm0clB3KawS_7aRl4,717
133
133
  dstack/_internal/core/backends/oci/backend.py,sha256=yXjVCt7n6BVLH0byYFbNFf-P9J0FwlNfxsYbKGMdoI4,536
@@ -640,8 +640,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
640
640
  dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
641
641
  dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
642
642
  dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=iv8TmQh959iEUZjCFTzmGnFW8fHukTVpPmD4iBzOfS4,5361
643
- dstack-0.19.22.dist-info/METADATA,sha256=IrOFixv64n-hCipEIcN-VUx34ZLaUeBIHl_0ktNWDb0,20586
644
- dstack-0.19.22.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
645
- dstack-0.19.22.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
646
- dstack-0.19.22.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
647
- dstack-0.19.22.dist-info/RECORD,,
643
+ dstack-0.19.23.dist-info/METADATA,sha256=x4bnuOljqzm97ligotwRBoTJsIWshkN2Gmgkpc5iExI,20586
644
+ dstack-0.19.23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
645
+ dstack-0.19.23.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
646
+ dstack-0.19.23.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
647
+ dstack-0.19.23.dist-info/RECORD,,