Prerequisites#
Hardware, software, and access requirements for every Halos Outside-In Safety bring-up, gathered in one place. Work through this page once before you start: the quick starts and the Deployment Guide assume everything here is already in place.
Each section links to the guide that owns the detail, so you can go deeper on whichever profile you are deploying.
Which sections apply#
Profile |
What runs |
What it needs |
|---|---|---|
|
Safety Core on an existing perception feed. No Isaac Sim and no closed loop. |
Perception host, Software, Runtime environment settings, NGC access, and Perception and calibration |
|
The full closed loop on a single host: perception, Safety Core, and NVIDIA Isaac Sim. |
The above, plus Closed-loop host |
|
The closed loop split across an x86 stimulus host and an NVIDIA IGX Thor safety host. |
Software, Runtime environment settings, NGC access and Perception and calibration on both hosts, plus Closed-loop host for the x86 and Second host for HIL for the Thor |
Hardware#
Isaac Sim runs on x86-64. The Safety Core runs on either architecture: the base
profile deploys on an x86-64 server or on an aarch64 IGX Thor, and in HIL the safety
host is always an IGX Thor.
Perception host#
AI Perception is the VSS Warehouse Blueprint. The minimum for the 2D Vision AI profile is:
18 core CPU (x86 systems)
128 GB RAM
1 TB SSD
1 × 1 Gbps network interface
1 or 2 supported GPUs
Supported GPUs, and the number of camera streams each sustains on the 2D Vision AI profile:
GPU Type |
Number of streams |
2D Vision AI Profile (Number of GPUs) |
|---|---|---|
RTX PRO 6000 BW |
16 |
1 |
H100 (NVL, SXM HBM3) |
26 |
1 |
L40S |
12 |
1 |
IGX-THOR |
7 |
1 |
DGX-SPARK |
7 |
1 |
For the full list, see VSS Warehouse Blueprint Prerequisites and the Warehouse Quickstart.
Closed-loop host#
Software-in-the-Loop runs perception, the Safety Core, and Isaac Sim together on one host, at three cameras. That is a lighter load than a production perception deployment, so these figures stand on their own rather than adding to Perception host. What the closed loop does add is a GPU with RT cores:
Component |
Minimum |
Recommended |
|---|---|---|
CPU |
16 cores |
16+ cores |
RAM |
32 GB |
64 GB |
GPU |
RTX 5090 |
RTX PRO 6000 Blackwell |
Storage |
200 GB |
250 GB |
OS |
Ubuntu 24.04 |
Ubuntu 24.04 |
Network |
1 Gbps |
1 Gbps |
The GPU needs 24 GB or more of VRAM: one RTX 5090, one RTX PRO 6000 Blackwell Workstation, or two L40S.
Warning
Isaac Sim renders with ray tracing and needs a GPU with RT cores. Compute-only accelerators do not have them: an H100 runs perception well and cannot run Isaac Sim.
On a two-GPU host, give perception the first GPU and Isaac Sim the RT-core one. On a single-GPU host, that one card needs both the RT cores and the VRAM.
Note
Perception and Isaac Sim share this host, so treat the Recommended column as the floor rather than the Minimum.
Second host for HIL#
Hardware-in-the-Loop splits the loop across two machines. Isaac Sim stays on the x86 stimulus host described above, and the IGX Thor runs AI Perception and the Safety Core, so the x86 side is not sized for perception. The safety host needs:
NVIDIA IGX Thor running IGX-SW 2.0 with Jetson Linux BSP Rel 38.5, and JetPack installed after the BSP for CUDA and the other runtime components.
16 core CPU, 32 GB RAM and 200 GB of free disk, as on the x86 side.
Mutually routable IP addresses on both hosts. A Thor reachable only over a USB tether or through a jump host cannot be used.
Both hosts NTP-synced.
A clone of the repository on each host, and ssh access from the stimulus host to the safety host.
MAXN power mode and pinned clocks, per Runtime environment settings.
Note
Flashing via the Jetson USB method includes Docker and the NVIDIA Container
Toolkit. L4T flash and SDK Manager do not, so install both separately on those
paths. Depending on the method, Docker may also need sudo until you complete
the Docker post-installation steps.
See HIL Architecture for the ports each host must expose.
Software#
The OS and driver are tied to each other and to the platform, so pick the row for the host you are building rather than taking a single version.
Platform |
OS |
NVIDIA Driver |
|---|---|---|
x86-64 |
Ubuntu 24.04 |
580.105.08 |
NVIDIA IGX Thor |
Jetson Linux BSP Rel 38.5, with IGX-SW 2.0 |
580.00 |
NVIDIA DGX Spark |
DGX OS 7.4.0 |
580.95.05 |
Common to every platform:
Docker 28.3.3+ and below 29.5.0
Docker Compose Plugin v2.39.1+
NVIDIA Container Toolkit 1.17.8+
NGC CLI 4.10.0+
Note
The VSS Warehouse Blueprint pins x86 hosts to Ubuntu 24.04. The base VSS Blueprint also supports 22.04 with driver 580.65.06, and the Safety Core itself runs on either release, so a Safety-Core-only host is not constrained by this — but any host running AI Perception should be on 24.04.
The IGX Thor driver looks like a downgrade and is not: 580.00 is the driver that
ships with the Jetson BSP and is what nvidia-smi reports there. The figures
in Runtime Profile were captured on exactly this combination.
Warning
Docker Engine 29.5.0 and later fails NGC image pulls with Incorrect
Repository Format after the layers download. docker login still
succeeds, so the failure surfaces only at the pull. Pin to 28.3.3 if needed.
Runtime environment settings#
The VSS Blueprint expects a set of host settings that are not defaults. Follow VSS Warehouse Blueprint Prerequisites for the commands; the checklist below is only so you can confirm nothing was skipped.
Setting |
Applies to |
VSS section |
|---|---|---|
Docker installed from the apt repository, not |
Every host |
Install Docker |
|
Every host |
Configure Docker |
|
Every host |
Linux Kernel Settings |
MAXN power mode, pinned clocks, VIC governor |
IGX Thor only |
VIC clocks |
Cache cleaner loop |
IGX Thor and DGX Spark only |
Cache cleaner |
Inbound access from the Docker bridge subnets |
Hosts with a default-deny firewall |
Host firewall and Docker bridge subnets |
Important
The clock settings are the ones to watch, for two reasons.
They do not persist across a reboot, so a host configured correctly once will silently drop to a lower operating point after the next restart.
And every figure in Runtime Profile was captured with MAXN (mode 0) and clocks pinned. A host left at default clocks will not reproduce them. The PVA and NVDEC utilization percentages are especially sensitive: they are percentages of busy time, so the same work reports a lower number at a higher clock, and runs at different clocks are not comparable.
Note
Two of these fail silently rather than loudly, which is why they are worth
checking explicitly rather than assuming. Missing sysctl settings degrade
throughput and latency without an error, and a default-deny firewall leaves
bridge-networked containers unable to reach host-networked services, so the
affected workflow produces no output instead of a failure.
If you use the VSS Agent, Kibana or Phoenix UIs, they are served on TCP port
7777 of the deployment host.
NGC access#
Important
The Safety Core container image is hosted on NGC under gated access. Before pulling the image, complete the following one-time setup:
Accept the NGC invitation — An enrollment email is sent when your access is approved. Click the link in the email to join the NGC organization. If you did not receive the email or it has expired, contact your NVIDIA representative to have it resent.
Sign in to NGC — Log in at https://ngc.nvidia.com with your NVIDIA account.
Accept the license agreement — Navigate to the Halos Outside-In Safety resource page and accept the governing terms and user agreements when prompted.
Create an NGC API key at https://ngc.nvidia.com → Account → Setup → API Keys →
Generate API Key. The key needs Early Access to nvidia/halos-outside-in, which
covers the Safety Core image and the SIL data tarball.
Important
Generate a Personal Key, with NGC Catalog selected under Key
Permissions. Legacy NGC API keys are not accepted by the Cosmos3 Reasoner NIM
(1.7.0+) that VSS deploys: they fail when the container is pulled or run, not
when the key is created, so the problem surfaces late.
Copy the key when it is shown. It cannot be retrieved afterwards.
The same key covers perception. To confirm it has the access VSS needs before starting a deployment:
export NGC_CLI_API_KEY='<NGC API key>'
ngc registry resource list "nvidia/vss-warehouse/*"
ngc registry resource list "nvidia/vss-core/*"
ngc registry image list "nvidia/vss-core/*"
Note
If ngc config set reports Missing org - If Authenticated, org is also
required, the org selected in the CLI config does not match the org the key
was generated against. Regenerate the key with the intended org selected.
Docker authentication#
Docker must be authenticated to nvcr.io or protected image pulls fail with
401 Unauthorized. NGC CLI authentication alone is not enough.
export PSF_IMAGE=nvcr.io/nvidia/halos-outside-in/outside-in-safety:nv-psf-halos-1.3-6932895
docker login nvcr.io
# Username: $oauthtoken
# Password: <NGC API key>
# Validate Docker registry access before deployment.
docker pull "${PSF_IMAGE}"
NGC CLI authentication#
Required for downloading data and compose files.
ngc config set
# API Key: <NGC API key>
Perception and calibration#
The Safety Core consumes perception events, so the perception stack has to be up and correctly calibrated before it starts:
VSS stack containers (analytics, UI, recorders, and so on) are running and reachable.
The calibration file for the monitored region is deployed and includes
"restrictedObjectTypes":["Person"]for the ROIs, where relevant.For dual-camera configurations, all camera streams are synchronized and named accurately.
See Safety Core prerequisites in the Deployment Guide.
Per-profile additions#
3D perception#
SIL — 3D Perception assumes familiarity with:
Agentic deployment#
Agentic Deployment also needs an agentskills.io-compatible coding agent on the host, such as Claude Code, Codex, or Cursor.
Next steps#
Deploy AI Perception — Deploy AI Perception on live cameras
Deploy the Safety Core — Deploy the Safety Core on an existing perception feed
SIL — 2D Perception — Bring up the single-host closed loop
Deploy the HIL Closed Loop — Bring up the two-host closed loop
Agentic Deployment — Have a coding agent perform the bring-up for you