Skip to content

Commit f87625f

Browse files
committed
Add --cpu to dstack apply/dstack offer
1 parent 6cc7772 commit f87625f

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

src/dstack/_internal/cli/services/args.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ def port_mapping(v: str) -> PortMapping:
1919
return PortMapping.parse(v)
2020

2121

22-
def cpu_spec(v: str) -> resources.Range[int]:
23-
return parse_obj_as(resources.Range[int], v)
22+
def cpu_spec(v: str) -> dict:
23+
return resources.CPUSpec.parse(v)
2424

2525

2626
def memory_spec(v: str) -> resources.Range[resources.Memory]:

src/dstack/_internal/cli/services/configurators/run.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from pydantic import parse_obj_as
1010

1111
import dstack._internal.core.models.resources as resources
12-
from dstack._internal.cli.services.args import disk_spec, gpu_spec, port_mapping
12+
from dstack._internal.cli.services.args import cpu_spec, disk_spec, gpu_spec, port_mapping
1313
from dstack._internal.cli.services.configurators.base import (
1414
ApplyEnvVarsConfiguratorMixin,
1515
BaseApplyConfigurator,
@@ -292,6 +292,14 @@ def register_args(cls, parser: argparse.ArgumentParser, default_max_offers: int
292292
default=default_max_offers,
293293
)
294294
cls.register_env_args(configuration_group)
295+
configuration_group.add_argument(
296+
"--cpu",
297+
type=cpu_spec,
298+
help="Request CPU for the run. "
299+
"The format is [code]ARCH[/]:[code]COUNT[/] (all parts are optional)",
300+
dest="cpu_spec",
301+
metavar="SPEC",
302+
)
295303
configuration_group.add_argument(
296304
"--gpu",
297305
type=gpu_spec,
@@ -313,6 +321,8 @@ def apply_args(self, conf: BaseRunConfiguration, args: argparse.Namespace, unkno
313321
apply_profile_args(args, conf)
314322
if args.run_name:
315323
conf.name = args.run_name
324+
if args.cpu_spec:
325+
conf.resources.cpu = resources.CPUSpec.parse_obj(args.cpu_spec)
316326
if args.gpu_spec:
317327
conf.resources.gpu = resources.GPUSpec.parse_obj(args.gpu_spec)
318328
if args.disk_spec:

0 commit comments

Comments
 (0)