"components/backends/vscode:/vscode.git/clone" did not exist on "ef2b0e6712003c4383f73fa05d025d5ddeab6bd9"
args.py 1.42 KB
Newer Older
1
2
3
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

4
"""Argument parsing for GPU Memory Service server."""
5
6
7
8
9

import argparse
import logging
from dataclasses import dataclass

10
11
from gpu_memory_service.common.utils import get_socket_path

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
logger = logging.getLogger(__name__)


@dataclass
class Config:
    """Configuration for GPU Memory Service server."""

    device: int
    socket_path: str
    verbose: bool


def parse_args() -> Config:
    """Parse command line arguments for GPU Memory Service server."""
    parser = argparse.ArgumentParser(
27
        description="GPU Memory Service allocation server."
28
29
30
31
32
33
34
35
36
37
38
39
    )

    parser.add_argument(
        "--device",
        type=int,
        required=True,
        help="CUDA device ID to manage memory for.",
    )
    parser.add_argument(
        "--socket-path",
        type=str,
        default=None,
40
        help="Path for Unix domain socket. Default uses GPU UUID for stability.",
41
42
43
44
45
46
47
48
49
50
    )
    parser.add_argument(
        "--verbose",
        "-v",
        action="store_true",
        help="Enable verbose logging.",
    )

    args = parser.parse_args()

51
52
    # Use UUID-based socket path by default (stable across CUDA_VISIBLE_DEVICES)
    socket_path = args.socket_path or get_socket_path(args.device)
53

54
    return Config(
55
56
57
58
        device=args.device,
        socket_path=socket_path,
        verbose=args.verbose,
    )