Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: Add dstack list command to list available key resources such as gpu, region, and backends #2142

Open
peterschmidt85 opened this issue Dec 25, 2024 · 5 comments

Comments

@peterschmidt85
Copy link
Contributor

Problem

Problem 1 (major): listing available GPUs per region and backend

As a user, sometimes, I want to know which GPUs are available within my project (and in which regions). Currently, I either have to specify a wide range in YAML and then try dstack apply and explore offers, or check it via specific backends' console UI (e.g. I do it often with RunPod - because they have a great and convenient UI for that).
It would be great if I could list available GPUs per region and backend and their availability (if this information is available) via the CLI.

Also, a minor yet related issue is when I don't know how certain GPUs are named with specific backends. This issue though should be better addressed by ensuring that dstack uses unified GPU names across all vendors and backends. But this may not be very easy to implement. That's why this issue is also related.

Note, the SSH backend is also relevant here as I may want to see what fleets are available (if I use dstack heavily on-pem machines).

Problem 2 (medium): listing available regions per backend

As a user, I may often want to see what regions are available so I can configure the backend or run accordingly, or to create volumes. Currently, I always have to either read the backend's documentation or use their console UI.

Overall, if I have to use backend's UI to work with backends, this isn't very productive nor convenient. We strive to make dstack the most simple way to work with multiple clouds. For that, we need to ensure all is possible without using backends' console UI.

Problem 3 (minor): listing available backends

As a user, sometimes I may want to know what backends are available. Currently, this information is only available via UI or the YAML files if you're a server admin. It would be a lot more convenient if I could access it via the CLI.

Solution

$ dstack list gpu [--backend BACKEND] [--region REGION] [--name NAME] [--all]

| <backend> | <GPU name/memory> | GPU vendor | <region> | <availability/quota information> |
$ dstack list region [--backend BACKEND] 

| <backend> | <region> |
$ dstack list backend

| <backend> |

Workaround

No response

Would you like to help us implement this feature by sending a PR?

Yes

@r4victor
Copy link
Collaborator

@peterschmidt85, should the command 1) list the GPUs/regions/backends available to the user (set up in the project) or 2) all resources supported by dstack. If it's 1), then you wouldn't be able "to see what regions are available so I can configure the backend" because you would only see the already configured regions.

@peterschmidt85
Copy link
Contributor Author

@peterschmidt85, should the command 1) list the GPUs/regions/backends available to the user (set up in the project) or 2) all resources supported by dstack. If it's 1), then you wouldn't be able "to see what regions are available so I can configure the backend" because you would only see the already configured regions.

Yes, IMO, dstack list should show only what is available to the user (based on permissions and backend configurations); this way, it's easier for the user to discover what is available; (If backends' regions arent configured, the default is always all regions); also the user may re-configure to what they need.)

@Bihan
Copy link
Collaborator

Bihan commented Dec 26, 2024

Currently, I use the web consoles of cloud providers to browse through their available offers. This process is not that productive, as it requires logging into each provider's backend individually, and user interfaces vary between providers, requiring extra effort to figure out each time I log in. If dstack could provide a unified browsing experience through a dstack list command, it would simplify this process for users.

@peterschmidt85
Copy link
Contributor Author

If dstack could provide a unified browsing experience through a dstack list command, it would simplify this process for users.

@Bihan Please check the suggested solution above and let me know if this would cover your use case, or of you have other comments/suggestions.

@Bihan
Copy link
Collaborator

Bihan commented Dec 26, 2024

@peterschmidt85 I think below command from the solutions would cover my use case. I think this command would list all the available gpu instances in all regions for a particular backend.

dstack list gpu [--backend BACKEND] [-all]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants