simulo-interfaces 0.17.0__tar.gz → 0.19.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simulo_interfaces-0.17.0/src/simulo_interfaces.egg-info → simulo_interfaces-0.19.0}/PKG-INFO +1 -1
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/pyproject.toml +1 -1
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/__init__.py +7 -18
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/asset_catalog.py +1 -40
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/enums.py +22 -0
- simulo_interfaces-0.19.0/src/simulo/interfaces/platform/systems.py +106 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0/src/simulo_interfaces.egg-info}/PKG-INFO +1 -1
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/SOURCES.txt +1 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/MANIFEST.in +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/PYPI.md +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/setup.cfg +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/__init__.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/__init__.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/actuator.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/asset.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/entity.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/light.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/materials.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/physics.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/pose.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/primitives.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/prop.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/record.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/robot.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/scene.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/sensor.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/terrain.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/visual.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/world.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/exceptions.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/ids.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/_payload.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/app.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/asset.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/callbacks.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/debug.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/domain.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/job_events.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/manifest.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/outputs.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/policy_bundle.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runs.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runtime.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/submit.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/volume.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/py.typed +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/__init__.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/anomaly.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/components.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/env.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/player.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/policy.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/scenario.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/task.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/tensors.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/trainer.py +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/dependency_links.txt +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/requires.txt +0 -0
- {simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simulo-interfaces"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.19.0"
|
|
8
8
|
description = "Type contracts for the Simulo SDK. Installed automatically as a dependency of the simulo package."
|
|
9
9
|
readme = "PYPI.md"
|
|
10
10
|
requires-python = ">=3.11"
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/__init__.py
RENAMED
|
@@ -9,14 +9,6 @@ implementation-free — concrete behaviour lives in the future
|
|
|
9
9
|
|
|
10
10
|
from simulo.interfaces.platform.asset import AssetProtocol
|
|
11
11
|
from simulo.interfaces.platform.asset_catalog import (
|
|
12
|
-
ADMIN_ASSET_ROUTE_TEMPLATE,
|
|
13
|
-
ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE,
|
|
14
|
-
ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE,
|
|
15
|
-
ADMIN_ASSET_VERSION_ROUTE_TEMPLATE,
|
|
16
|
-
ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE,
|
|
17
|
-
ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE,
|
|
18
|
-
ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE,
|
|
19
|
-
ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE,
|
|
20
12
|
ASSET_BASE_MODES,
|
|
21
13
|
ASSET_CORRUPT_CODE,
|
|
22
14
|
ASSET_DIGEST_MISMATCH_CODE,
|
|
@@ -78,7 +70,7 @@ from simulo.interfaces.platform.asset_catalog import (
|
|
|
78
70
|
from simulo.interfaces.platform.callbacks import JobCallbackProtocol
|
|
79
71
|
from simulo.interfaces.platform.debug import DebugSessionProtocol, ReplaySessionProtocol, VisualizationSessionProtocol
|
|
80
72
|
from simulo.interfaces.platform.domain import Checkpoint, Job, Package, Project, Resource, Tag, TrainedModel
|
|
81
|
-
from simulo.interfaces.platform.enums import OutputKind
|
|
73
|
+
from simulo.interfaces.platform.enums import OutputKind, SystemType
|
|
82
74
|
from simulo.interfaces.platform.job_events import (
|
|
83
75
|
MAX_PUBLIC_ASSET_FINDING_COUNT,
|
|
84
76
|
MAX_PUBLIC_JOB_EVENT_ATTEMPT,
|
|
@@ -248,11 +240,16 @@ from simulo.interfaces.platform.submit import (
|
|
|
248
240
|
canonical_pypi_name,
|
|
249
241
|
is_platform_pinned,
|
|
250
242
|
)
|
|
243
|
+
from simulo.interfaces.platform.systems import SYSTEM_SPECS, SystemSpec
|
|
251
244
|
from simulo.interfaces.platform.volume import VolumeProtocol
|
|
252
245
|
|
|
253
246
|
__all__ = [
|
|
254
247
|
# enums
|
|
255
248
|
"OutputKind",
|
|
249
|
+
"SystemType",
|
|
250
|
+
# systems (GPU system-tier catalog, issue #1362)
|
|
251
|
+
"SystemSpec",
|
|
252
|
+
"SYSTEM_SPECS",
|
|
256
253
|
# closed public job-event contract (#656)
|
|
257
254
|
"PUBLIC_JOB_EVENT_SCHEMA_VERSION",
|
|
258
255
|
"WORKER_JOB_EVENTS_ROUTE_TEMPLATE",
|
|
@@ -404,15 +401,7 @@ __all__ = [
|
|
|
404
401
|
"ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE",
|
|
405
402
|
"ASSET_VERSION_REPORT_ROUTE_TEMPLATE",
|
|
406
403
|
"ASSET_VERSION_DOWNLOAD_ROUTE_TEMPLATE",
|
|
407
|
-
# asset catalog —
|
|
408
|
-
"ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE",
|
|
409
|
-
"ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE",
|
|
410
|
-
"ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE",
|
|
411
|
-
"ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE",
|
|
412
|
-
"ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE",
|
|
413
|
-
"ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE",
|
|
414
|
-
"ADMIN_ASSET_ROUTE_TEMPLATE",
|
|
415
|
-
"ADMIN_ASSET_VERSION_ROUTE_TEMPLATE",
|
|
404
|
+
# asset catalog — staff routes
|
|
416
405
|
# asset catalog — worker routes
|
|
417
406
|
"WORKER_JOB_ASSET_VALIDATION_PRESIGN_ROUTE_TEMPLATE",
|
|
418
407
|
"WORKER_JOB_ASSET_VALIDATION_ROUTE_TEMPLATE",
|
|
@@ -4,7 +4,7 @@ This is the **canonical, single source of truth** for the reference grammar, the
|
|
|
4
4
|
route constants, the size caps, the wire dataclasses, and the reserved-word /
|
|
5
5
|
role / verdict enumerations that carry a USD *asset* (a versioned robot, world, or prop
|
|
6
6
|
package) from the laptop client to the cloud catalog and back into a job. It
|
|
7
|
-
lands **before any consumer** — the control plane (customer, ``/
|
|
7
|
+
lands **before any consumer** — the control plane (customer, ``/staff/*`` and
|
|
8
8
|
``/internal/worker/*`` routes), the thin ``simulo`` client (``simulo asset ...``
|
|
9
9
|
+ the ``simulo run`` submit-time pin resolver), the ``simulo-backend`` worker
|
|
10
10
|
(claim → download → validate), and the ``simulo-console`` catalog browser all
|
|
@@ -155,18 +155,6 @@ the two frozensets stay separate constants (identical value today) so a future r
|
|
|
155
155
|
publish role can split them without an API change. A missing role answers one line
|
|
156
156
|
naming the role and who can grant it.
|
|
157
157
|
|
|
158
|
-
## Admin endpoints (``require_admin_key`` — the ONLY producers of global rows)
|
|
159
|
-
|
|
160
|
-
The ``/admin`` mirrors of initiate / parts / complete / validate / deprecate /
|
|
161
|
-
reactivate / delete, plus reads that **include the origin block**. Admin *initiate*
|
|
162
|
-
(:data:`ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE`) REQUIRES origin:
|
|
163
|
-
``{origin_type, origin_ref, origin_url?, origin_digest?}`` where ``origin_type``
|
|
164
|
-
is one of :data:`ASSET_ORIGIN_TYPES`. Customer serializers exclude origin **by
|
|
165
|
-
construction** — :class:`AssetRecord` / :class:`AssetVersionRecord` carry no
|
|
166
|
-
origin field at all, so ``show --json`` and console payloads can never contain
|
|
167
|
-
it. An org publish records ``origin_type="customer_upload"`` for schema
|
|
168
|
-
symmetry.
|
|
169
|
-
|
|
170
158
|
## Worker endpoints (``require_worker`` + lease header)
|
|
171
159
|
|
|
172
160
|
* The existing claim response
|
|
@@ -504,33 +492,6 @@ ASSET_VERSION_REPORT_ROUTE_TEMPLATE = "/v1/asset-versions/{version_id}/report"
|
|
|
504
492
|
#: :data:`ASSET_NOT_EXPORTABLE_CODE`. ``.format(version_id=...)``.
|
|
505
493
|
ASSET_VERSION_DOWNLOAD_ROUTE_TEMPLATE = "/v1/asset-versions/{version_id}/download"
|
|
506
494
|
|
|
507
|
-
# --------------------------------------------------------------------------
|
|
508
|
-
# Admin routes (require_admin_key; the ONLY producers of global rows)
|
|
509
|
-
# --------------------------------------------------------------------------
|
|
510
|
-
#
|
|
511
|
-
# Mirrors of initiate/parts/complete/validate/deprecate/delete, plus reads that
|
|
512
|
-
# INCLUDE the origin block. Same two path families under /admin.
|
|
513
|
-
|
|
514
|
-
#: ``POST`` — admin initiate (REQUIRES origin). ``.format(kind=..., name=...)``.
|
|
515
|
-
ADMIN_ASSET_VERSIONS_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions"
|
|
516
|
-
#: ``POST`` — admin batch part presigns. ``.format(version_id=...)``.
|
|
517
|
-
ADMIN_ASSET_VERSION_UPLOAD_PARTS_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/upload/parts"
|
|
518
|
-
#: ``POST`` — admin complete multipart upload. ``.format(version_id=...)``.
|
|
519
|
-
ADMIN_ASSET_VERSION_UPLOAD_COMPLETE_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/upload/complete"
|
|
520
|
-
#: ``POST`` — admin revalidate. ``.format(version_id=...)``.
|
|
521
|
-
ADMIN_ASSET_VERSION_VALIDATE_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}/validate"
|
|
522
|
-
#: ``POST`` — admin deprecate by ``vN``. ``.format(kind=..., name=..., version=<int>)``.
|
|
523
|
-
ADMIN_ASSET_VERSION_DEPRECATE_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}/deprecate"
|
|
524
|
-
#: ``POST`` — admin reactivate (un-deprecate) by ``vN`` (global catalog, admin-only).
|
|
525
|
-
#: ``.format(kind=..., name=..., version=<int>)``.
|
|
526
|
-
ADMIN_ASSET_VERSION_REACTIVATE_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}/reactivate"
|
|
527
|
-
#: ``DELETE`` — admin delete by ``vN``. ``.format(kind=..., name=..., version=<int>)``.
|
|
528
|
-
ADMIN_ASSET_VERSION_BY_NUMBER_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}/versions/v{version}"
|
|
529
|
-
#: ``GET`` — admin asset read (INCLUDES origin). ``.format(kind=..., name=...)``.
|
|
530
|
-
ADMIN_ASSET_ROUTE_TEMPLATE = "/admin/assets/{kind}/{name}"
|
|
531
|
-
#: ``GET`` — admin version read (INCLUDES origin). ``.format(version_id=...)``.
|
|
532
|
-
ADMIN_ASSET_VERSION_ROUTE_TEMPLATE = "/admin/asset-versions/{version_id}"
|
|
533
|
-
|
|
534
495
|
# --------------------------------------------------------------------------
|
|
535
496
|
# Worker routes (bearer = static WORKER_TOKEN; + lease header, see submit.py)
|
|
536
497
|
# --------------------------------------------------------------------------
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/enums.py
RENAMED
|
@@ -44,6 +44,28 @@ class ResumePolicy(StrEnum):
|
|
|
44
44
|
"""Resume only on explicit request. Reserved: currently behaves like ``NEVER``."""
|
|
45
45
|
|
|
46
46
|
|
|
47
|
+
class SystemType(StrEnum):
|
|
48
|
+
"""An abstract GPU system tier.
|
|
49
|
+
|
|
50
|
+
Each tier's hardware profile and fleet-provisioning state lives in
|
|
51
|
+
:data:`simulo.interfaces.platform.systems.SYSTEM_SPECS`, keyed by these
|
|
52
|
+
members. The AWS instance type behind a tier is never part of this name —
|
|
53
|
+
see :class:`simulo.interfaces.platform.systems.SystemSpec`'s own docstring.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
TIER_1 = "tier1"
|
|
57
|
+
"""Entry tier — always available."""
|
|
58
|
+
|
|
59
|
+
TIER_2 = "tier2"
|
|
60
|
+
"""Mid tier — always available."""
|
|
61
|
+
|
|
62
|
+
TIER_3 = "tier3"
|
|
63
|
+
"""High tier — not yet available on the deployable fleet."""
|
|
64
|
+
|
|
65
|
+
TIER_4 = "tier4"
|
|
66
|
+
"""Top tier — not yet available on the deployable fleet."""
|
|
67
|
+
|
|
68
|
+
|
|
47
69
|
class ResourceKind(StrEnum):
|
|
48
70
|
"""Kind of a registry-resolved, read-only resource mount."""
|
|
49
71
|
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"""GPU system-tier catalog — the closed hardware contract behind `SystemType`.
|
|
2
|
+
|
|
3
|
+
`SYSTEM_SPECS` is the single published source of truth for what each tier
|
|
4
|
+
means: the marketing GPU name, its VRAM, the host's vCPU/memory, whether the
|
|
5
|
+
tier is provisionable on the deployable fleet today, and (internal-only) the
|
|
6
|
+
AWS instance type behind it. Nothing here schedules a job against real
|
|
7
|
+
hardware — selection stays record-only until a later milestone adds live
|
|
8
|
+
enforcement.
|
|
9
|
+
|
|
10
|
+
Stdlib-only (`dataclasses` plus the sibling `enums` module): this file must
|
|
11
|
+
import nothing else, so the package's zero-runtime-dependency guarantee
|
|
12
|
+
(`test_no_heavy_deps.py`) holds.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from dataclasses import dataclass
|
|
16
|
+
|
|
17
|
+
from simulo.interfaces.platform.enums import SystemType
|
|
18
|
+
|
|
19
|
+
# Shared dataclass options: immutable value objects (frozen), memory-lean
|
|
20
|
+
# (slots), and keyword-only construction (kw_only) — see `platform/domain.py`'s
|
|
21
|
+
# identical `_DC` for the full rationale.
|
|
22
|
+
_DC = {"frozen": True, "slots": True, "kw_only": True}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@dataclass(**_DC)
|
|
26
|
+
class SystemSpec:
|
|
27
|
+
"""One GPU tier's hardware profile and fleet-provisioning state.
|
|
28
|
+
|
|
29
|
+
`gpu_model` (e.g. `"T4"`) is the user-facing marketing name — the only
|
|
30
|
+
hardware identity a CLI table, `--json` output, or documentation page may
|
|
31
|
+
ever show. `instance_type` is the AWS EC2 instance type behind the tier,
|
|
32
|
+
kept here ONLY for an offline fleet crosscheck against the deployable
|
|
33
|
+
CloudFormation allowlist and the control plane's own bookkeeping — it
|
|
34
|
+
must never reach a user-facing surface. Hiding it is deliberate: a future
|
|
35
|
+
author copying an AWS SKU into an example is exactly how `gpu="L4"`
|
|
36
|
+
(actually Tier 3, not provisionable) ended up in 40 tracked files before
|
|
37
|
+
this catalog existed.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
system: SystemType
|
|
41
|
+
gpu_model: str
|
|
42
|
+
vram_gb: int
|
|
43
|
+
vcpu: int
|
|
44
|
+
memory_gb: int
|
|
45
|
+
max_parallel_envs: int | None
|
|
46
|
+
available: bool
|
|
47
|
+
instance_type: str
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# vcpu/memory_gb: AWS's published instance-type specifications
|
|
51
|
+
# (https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html, confirmed at
|
|
52
|
+
# M20-system-catalog implementation time, 2026-09-07) for
|
|
53
|
+
# g4dn.xlarge/g5.xlarge/g6.xlarge/g6e.xlarge. vram_gb: each GPU model's
|
|
54
|
+
# published VRAM capacity (NVIDIA product specifications) — deliberately NOT
|
|
55
|
+
# the ~22/44 GiB AWS's own instance-type page reports as *usable* GPU memory
|
|
56
|
+
# on g5/g6/g6e after ECC/hypervisor reservation, since `vram_gb` documents the
|
|
57
|
+
# hardware users are told they are getting (`gpu_model`), not a fleet
|
|
58
|
+
# provisioning detail.
|
|
59
|
+
SYSTEM_SPECS: dict[SystemType, SystemSpec] = {
|
|
60
|
+
SystemType.TIER_1: SystemSpec(
|
|
61
|
+
system=SystemType.TIER_1,
|
|
62
|
+
gpu_model="T4",
|
|
63
|
+
vram_gb=16,
|
|
64
|
+
vcpu=4,
|
|
65
|
+
memory_gb=16,
|
|
66
|
+
# Measured ceiling for g4dn.xlarge's default workload (`.claude/skills/isaaclab/SKILL.md`,
|
|
67
|
+
# `.claude/skills/aws-infra/SKILL.md`, `cloud-infra/gpu-worker/gpu-worker.yaml`): 16
|
|
68
|
+
# parallel environments; a 4096-environment run exhausted GPU memory and made the
|
|
69
|
+
# instance unrecoverable. `aws-infra/SKILL.md` is explicit that this is
|
|
70
|
+
# workload/instance evidence for the template's default workload, not a universal
|
|
71
|
+
# constant — re-benchmark before relying on it for a different workload shape.
|
|
72
|
+
max_parallel_envs=16,
|
|
73
|
+
available=True,
|
|
74
|
+
instance_type="g4dn.xlarge",
|
|
75
|
+
),
|
|
76
|
+
SystemType.TIER_2: SystemSpec(
|
|
77
|
+
system=SystemType.TIER_2,
|
|
78
|
+
gpu_model="A10G",
|
|
79
|
+
vram_gb=24,
|
|
80
|
+
vcpu=4,
|
|
81
|
+
memory_gb=16,
|
|
82
|
+
max_parallel_envs=None,
|
|
83
|
+
available=True,
|
|
84
|
+
instance_type="g5.xlarge",
|
|
85
|
+
),
|
|
86
|
+
SystemType.TIER_3: SystemSpec(
|
|
87
|
+
system=SystemType.TIER_3,
|
|
88
|
+
gpu_model="L4",
|
|
89
|
+
vram_gb=24,
|
|
90
|
+
vcpu=4,
|
|
91
|
+
memory_gb=16,
|
|
92
|
+
max_parallel_envs=None,
|
|
93
|
+
available=False,
|
|
94
|
+
instance_type="g6.xlarge",
|
|
95
|
+
),
|
|
96
|
+
SystemType.TIER_4: SystemSpec(
|
|
97
|
+
system=SystemType.TIER_4,
|
|
98
|
+
gpu_model="L40S",
|
|
99
|
+
vram_gb=48,
|
|
100
|
+
vcpu=4,
|
|
101
|
+
memory_gb=32,
|
|
102
|
+
max_parallel_envs=None,
|
|
103
|
+
available=False,
|
|
104
|
+
instance_type="g6e.xlarge",
|
|
105
|
+
),
|
|
106
|
+
}
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/SOURCES.txt
RENAMED
|
@@ -38,6 +38,7 @@ src/simulo/interfaces/platform/policy_bundle.py
|
|
|
38
38
|
src/simulo/interfaces/platform/runs.py
|
|
39
39
|
src/simulo/interfaces/platform/runtime.py
|
|
40
40
|
src/simulo/interfaces/platform/submit.py
|
|
41
|
+
src/simulo/interfaces/platform/systems.py
|
|
41
42
|
src/simulo/interfaces/platform/volume.py
|
|
42
43
|
src/simulo/interfaces/runtime/__init__.py
|
|
43
44
|
src/simulo/interfaces/runtime/anomaly.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/__init__.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/actuator.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/asset.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/entity.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/light.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/materials.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/physics.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/pose.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/primitives.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/prop.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/record.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/robot.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/scene.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/sensor.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/terrain.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/visual.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/authoring/world.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/asset.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/callbacks.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/debug.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/domain.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/job_events.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/manifest.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/outputs.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runs.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/runtime.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/submit.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/platform/volume.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/__init__.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/anomaly.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/components.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/player.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/policy.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/scenario.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/tensors.py
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo/interfaces/runtime/trainer.py
RENAMED
|
File without changes
|
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/requires.txt
RENAMED
|
File without changes
|
{simulo_interfaces-0.17.0 → simulo_interfaces-0.19.0}/src/simulo_interfaces.egg-info/top_level.txt
RENAMED
|
File without changes
|