|
| 1 | +# dstack offer |
| 2 | + |
| 3 | +Displays available offers (hardware configurations) with the configured backends (or offers that match already provisioned fleets). |
| 4 | + |
| 5 | +The output includes backend, region, instance type, resources, spot availability, and pricing details. |
| 6 | + |
| 7 | +## Usage |
| 8 | + |
| 9 | +This command accepts most of the same arguments as [`dstack apply`](apply.md). |
| 10 | + |
| 11 | +<div class="termy"> |
| 12 | + |
| 13 | +```shell |
| 14 | +$ dstack offer --help |
| 15 | +#GENERATE# |
| 16 | +``` |
| 17 | + |
| 18 | +</div> |
| 19 | + |
| 20 | +## Examples |
| 21 | + |
| 22 | +### List GPU offers |
| 23 | + |
| 24 | +The `--gpu` flag accepts the same specification format as the `gpu` property in [`dev environment`](../../../concepts/dev-environments.md), [`task`](../../../concepts/tasks.md), |
| 25 | +[`service`](../../../concepts/services.md), and [`fleet`](../../../concepts/fleets.md) configurations. |
| 26 | + |
| 27 | +The general format is: `<vendor>:<comma-sparated names>:<memory range>:<quantity range>`. |
| 28 | + |
| 29 | +Each component is optional. |
| 30 | + |
| 31 | +Ranges can be: |
| 32 | + |
| 33 | +* **Closed** (e.g. `24GB..80GB` or `1..8`) |
| 34 | +* **Open** (e.g. `24GB..` or `1..`) |
| 35 | +* **Single values** (e.g. `1` or `24GB`). |
| 36 | + |
| 37 | +Examples: |
| 38 | + |
| 39 | +* `--gpu nvidia` (any NVIDIA GPU) |
| 40 | +* `--gpu nvidia:1..8` (from one to eigth NVIDIA GPUs) |
| 41 | +* `--gpu A10,A100` (single NVIDIA A10 or A100 GPU) |
| 42 | +* `--gpu A100:80GB` (single NVIDIA A100 with 80GB vRAM) |
| 43 | +* `--gpu 24GB..80GB` (any GPU with 24GB to 80GB vRAM) |
| 44 | + |
| 45 | +<!-- TODO: Mention TPU --> |
| 46 | +<!-- TODO: For TPU: support https://github.com/dstackai/dstack/issues/2154 --> |
| 47 | + |
| 48 | +The following example lists offers with one or more H100 GPUs: |
| 49 | + |
| 50 | +<div class="termy"> |
| 51 | + |
| 52 | +```shell |
| 53 | +$ dstack offer --gpu H100:1.. --max-offers 10 |
| 54 | +Getting offers... |
| 55 | +---> 100% |
| 56 | + |
| 57 | + # BACKEND REGION INSTANCE TYPE RESOURCES SPOT PRICE |
| 58 | + 1 datacrunch FIN-01 1H100.80S.30V 30xCPU, 120GB, 1xH100 (80GB), 100.0GB (disk) no $2.19 |
| 59 | + 2 datacrunch FIN-02 1H100.80S.30V 30xCPU, 120GB, 1xH100 (80GB), 100.0GB (disk) no $2.19 |
| 60 | + 3 datacrunch FIN-02 1H100.80S.32V 32xCPU, 185GB, 1xH100 (80GB), 100.0GB (disk) no $2.19 |
| 61 | + 4 datacrunch ICE-01 1H100.80S.32V 32xCPU, 185GB, 1xH100 (80GB), 100.0GB (disk) no $2.19 |
| 62 | + 5 runpod US-KS-2 NVIDIA H100 PCIe 16xCPU, 251GB, 1xH100 (80GB), 100.0GB (disk) no $2.39 |
| 63 | + 6 runpod CA NVIDIA H100 80GB HBM3 24xCPU, 251GB, 1xH100 (80GB), 100.0GB (disk) no $2.69 |
| 64 | + 7 nebius eu-north1 gpu-h100-sxm 16xCPU, 200GB, 1xH100 (80GB), 100.0GB (disk) no $2.95 |
| 65 | + 8 runpod AP-JP-1 NVIDIA H100 80GB HBM3 20xCPU, 251GB, 1xH100 (80GB), 100.0GB (disk) no $2.99 |
| 66 | + 9 runpod CA-MTL-1 NVIDIA H100 80GB HBM3 28xCPU, 251GB, 1xH100 (80GB), 100.0GB (disk) no $2.99 |
| 67 | + 10 runpod CA-MTL-2 NVIDIA H100 80GB HBM3 26xCPU, 125GB, 1xH100 (80GB), 100.0GB (disk) no $2.99 |
| 68 | + ... |
| 69 | + Shown 10 of 99 offers, $127.816 max |
| 70 | +``` |
| 71 | + |
| 72 | +</div> |
| 73 | + |
| 74 | +### JSON format |
| 75 | + |
| 76 | +Use `--json` to output offers in the JSON format. |
| 77 | + |
| 78 | +<div class="termy"> |
| 79 | + |
| 80 | +```shell |
| 81 | +$ dstack offer --gpu amd --json |
| 82 | +{ |
| 83 | + "project": "main", |
| 84 | + "user": "admin", |
| 85 | + "resources": { |
| 86 | + "cpu": { |
| 87 | + "min": 2, |
| 88 | + "max": null |
| 89 | + }, |
| 90 | + "memory": { |
| 91 | + "min": 8.0, |
| 92 | + "max": null |
| 93 | + }, |
| 94 | + "shm_size": null, |
| 95 | + "gpu": { |
| 96 | + "vendor": "amd", |
| 97 | + "name": null, |
| 98 | + "count": { |
| 99 | + "min": 1, |
| 100 | + "max": 1 |
| 101 | + }, |
| 102 | + "memory": null, |
| 103 | + "total_memory": null, |
| 104 | + "compute_capability": null |
| 105 | + }, |
| 106 | + "disk": { |
| 107 | + "size": { |
| 108 | + "min": 100.0, |
| 109 | + "max": null |
| 110 | + } |
| 111 | + } |
| 112 | + }, |
| 113 | + "max_price": null, |
| 114 | + "spot": null, |
| 115 | + "reservation": null, |
| 116 | + "offers": [ |
| 117 | + { |
| 118 | + "backend": "runpod", |
| 119 | + "region": "EU-RO-1", |
| 120 | + "instance_type": "AMD Instinct MI300X OAM", |
| 121 | + "resources": { |
| 122 | + "cpus": 24, |
| 123 | + "memory_mib": 289792, |
| 124 | + "gpus": [ |
| 125 | + { |
| 126 | + "name": "MI300X", |
| 127 | + "memory_mib": 196608, |
| 128 | + "vendor": "amd" |
| 129 | + } |
| 130 | + ], |
| 131 | + "spot": false, |
| 132 | + "disk": { |
| 133 | + "size_mib": 102400 |
| 134 | + }, |
| 135 | + "description": "24xCPU, 283GB, 1xMI300X (192GB), 100.0GB (disk)" |
| 136 | + }, |
| 137 | + "spot": false, |
| 138 | + "price": 2.49, |
| 139 | + "availability": "available" |
| 140 | + } |
| 141 | + ], |
| 142 | + "total_offers": 1 |
| 143 | +} |
| 144 | +``` |
| 145 | + |
| 146 | +</div> |
0 commit comments