Skip to content

Multi-cloud and multi-region GPU workloads

The v0.11 update now automatically finds the cheapest GPU across clouds and regions.

The latest release of dstack enables the automatic discovery of the best GPU price and availability across multiple configured cloud providers and regions.

Multiple backends per project

Now, dstack leverages price data from multiple configured cloud providers and regions to automatically suggest the most cost-effective options.

$ dstack run . -f llama-2/train.dstack.yml --gpu A100

 Configuration       llama-2/train.dstack.yml
 Min resources       2xCPUs, 8GB, 1xA100
 Max price           no
 Spot policy         auto
 Max duration        72h

 #  BACKEND  RESOURCES                      SPOT  PRICE
 2  lambda   30xCPUs, 200GB, 1xA100 (80GB)  yes   $1.1
 3  gcp      12xCPUs, 85GB, 1xA100 (40GB)   yes   $1.20582
 1  azure    24xCPUs, 220GB, 1xA100 (80GB)  yes   $1.6469
    ...

Continue? [y/n]:

The default behavior of dstack is to first attempt the most cost-effective options, provided they are available. You have the option to set a maximum price limit either through max_price in .dstack/profiles.yml or by using --max-price in the dstack run command.

To implement this change, we have modified the way projects are configured. You can now configure multiple clouds and regions within a single project.

Why this matter?

The ability to run LLM workloads across multiple cloud GPU providers allows for a significant reduction in costs and an increase in availability, while also remaining independent of any particular cloud vendor.

We hope that the value of dstack will continue to grow as we expand our support for additional cloud GPU providers. If you're interested in a specific provider, please message us on Discord.

Custom domains and HTTPS

In other news, it is now possible to deploy services using HTTPS. All you need to do is configure a wildcard domain (e.g., *.mydomain.com), point it to the gateway IP address, and then pass the subdomain you want to use (e.g., myservice.mydomain.com) to the gateway property in YAML (instead of the gateway IP address).

Other changes

.dstack/profiles.yml

  • The project property is no longer supported.
  • You can now use max_price to set the maximum price per hour in dollars.

dstack run

Using the dstack run command, you are now able to utilize options such as --gpu, --memory, --env, --max-price, and several other arguments to override the profile settings.

Lastly, the local backend is no longer supported. Now, you can run everything using only a cloud backend.

The documentation is updated to reflect the changes in the release.

Migration to 0.11

The dstack version 0.11 update brings significant changes that break backward compatibility. If you used prior dstack versions, after updating to dstack==0.11, you'll need to log in to the UI and reconfigure clouds.

We apologize for any inconvenience and aim to ensure future updates maintain backward compatibility.

Give it a try

Getting started with dstack takes less than a minute. Go ahead and give it a try.

$ pip install "dstack[aws,gcp,azure,lambda]" -U
$ dstack start