Merge branch 'master' of https://git.d-popov.com/popov/neuron-tai
This commit is contained in:
@@ -68,6 +68,7 @@ def _run_node(cfg: dict) -> None:
|
||||
tracker_source_disabled=bool(cfg.get("tracker_source_disabled", False)),
|
||||
torch_threads=cfg.get("torch_threads"),
|
||||
torch_interop_threads=cfg.get("torch_interop_threads"),
|
||||
node_name=cfg.get("node_name"),
|
||||
)
|
||||
except Exception as exc:
|
||||
print(f"\nERROR: {exc}", file=sys.stderr, flush=True)
|
||||
@@ -157,6 +158,8 @@ def _cmd_default(args) -> int:
|
||||
overrides["host"] = args.host
|
||||
if args.advertise_host:
|
||||
overrides["advertise_host"] = args.advertise_host
|
||||
if getattr(args, "node_name", None):
|
||||
overrides["node_name"] = args.node_name
|
||||
if args.route_timeout != 30.0:
|
||||
overrides["route_timeout"] = args.route_timeout
|
||||
if getattr(args, "memory", None) is not None:
|
||||
@@ -246,6 +249,8 @@ def _cmd_start(args) -> int:
|
||||
cfg["wallet_path"] = args.wallet
|
||||
if args.download_dir:
|
||||
cfg["download_dir"] = args.download_dir
|
||||
if getattr(args, "node_name", None):
|
||||
cfg["node_name"] = args.node_name
|
||||
|
||||
# Legacy start: just run without the dashboard (keep original blocking loop)
|
||||
from .startup import run_startup
|
||||
@@ -270,6 +275,7 @@ def _cmd_start(args) -> int:
|
||||
tracker_source_disabled=getattr(args, "tracker_source_disabled", False),
|
||||
torch_threads=getattr(args, "torch_threads", None),
|
||||
torch_interop_threads=getattr(args, "torch_interop_threads", None),
|
||||
node_name=cfg.get("node_name"),
|
||||
)
|
||||
except Exception as exc:
|
||||
print(f"ERROR: {exc}", file=sys.stderr, flush=True)
|
||||
@@ -315,6 +321,7 @@ def main() -> None:
|
||||
parser.add_argument("--port", type=int, metavar="N", help="Port to listen on")
|
||||
parser.add_argument("--host", metavar="ADDR", help="Interface to bind (default 0.0.0.0)")
|
||||
parser.add_argument("--advertise-host", metavar="ADDR", help="Host/IP advertised to the tracker")
|
||||
parser.add_argument("--node-name", metavar="NAME", help="Friendly display name shown on the tracker dashboard")
|
||||
parser.add_argument("--route-timeout", type=float, metavar="SEC", default=30.0,
|
||||
help="Seconds to wait for tracker route lookup (default 30)")
|
||||
parser.add_argument("--memory", type=int, metavar="MB", default=None,
|
||||
@@ -350,6 +357,7 @@ def main() -> None:
|
||||
start_cmd.add_argument("--quantization", choices=["auto", "bfloat16", "int8", "nf4", "bf16"], default="auto")
|
||||
start_cmd.add_argument("--host", default="0.0.0.0")
|
||||
start_cmd.add_argument("--advertise-host")
|
||||
start_cmd.add_argument("--node-name", help="Friendly display name shown on the tracker dashboard")
|
||||
start_cmd.add_argument("--tracker-mode", action="store_true")
|
||||
start_cmd.add_argument("--tracker-url", default=None)
|
||||
start_cmd.add_argument("--wallet")
|
||||
|
||||
@@ -610,6 +610,15 @@ def _warn_virtual_network_ip(ip: str | None) -> None:
|
||||
pass
|
||||
|
||||
|
||||
def _registration_display_fields(node_name: str | None) -> dict[str, str]:
|
||||
if not node_name:
|
||||
return {}
|
||||
name = node_name.strip()
|
||||
if not name:
|
||||
return {}
|
||||
return {"friendly_name": name}
|
||||
|
||||
|
||||
def run_startup(
|
||||
tracker_url: str,
|
||||
port: int = 0,
|
||||
@@ -630,6 +639,7 @@ def run_startup(
|
||||
tracker_source_disabled: bool = False,
|
||||
torch_threads: int | None = None,
|
||||
torch_interop_threads: int | None = None,
|
||||
node_name: str | None = None,
|
||||
) -> StubNodeServer | TorchNodeServer:
|
||||
"""Execute the full startup sequence and return a running node server.
|
||||
|
||||
@@ -646,6 +656,7 @@ def run_startup(
|
||||
|
||||
tracker_url = tracker_url.rstrip("/")
|
||||
relay_url = _discover_relay_url(tracker_url)
|
||||
display_fields = _registration_display_fields(node_name)
|
||||
if max_loaded_shards < 1:
|
||||
raise ValueError("--max-shards must be at least 1")
|
||||
|
||||
@@ -871,6 +882,7 @@ def run_startup(
|
||||
),
|
||||
**registration_capabilities,
|
||||
**relay_fields,
|
||||
**display_fields,
|
||||
}
|
||||
tracker_node_id = _register_with_tracker(
|
||||
tracker_url, reg_payload, node, _node_start_time,
|
||||
@@ -1019,6 +1031,7 @@ def run_startup(
|
||||
),
|
||||
**registration_capabilities,
|
||||
**relay_fields,
|
||||
**display_fields,
|
||||
}
|
||||
tracker_node_id = _register_with_tracker(
|
||||
tracker_url, auto_reg_payload, node, _node_start_time,
|
||||
@@ -1186,6 +1199,7 @@ def run_startup(
|
||||
"model_metadata": model_metadata_for(hf_repo, total_layers, cache_dir=shard_path),
|
||||
**registration_capabilities,
|
||||
**relay_fields,
|
||||
**display_fields,
|
||||
}
|
||||
tracker_node_id = _register_with_tracker(
|
||||
tracker_url, reg_payload, node, _node_start_time,
|
||||
@@ -1245,6 +1259,7 @@ def run_startup(
|
||||
"managed_assignment": not user_pinned_shard,
|
||||
**registration_capabilities,
|
||||
**relay_fields,
|
||||
**display_fields,
|
||||
}
|
||||
try:
|
||||
reg_resp = _post_json(
|
||||
|
||||
Reference in New Issue
Block a user