Install PCIe Host
Use this page to install the Neat PCIe host package on a Linux machine connected to a Modalix PCIe Card.
The Neat PCIe host package provides co-processing APIs for sending input from a host machine to a connected Modalix PCIe Card and receiving inference results.
Run this installation on the PCIe host machine connected to the Modalix PCIe Card. Do not run it inside the Palette SDK container, on a DevKit, or on the Modalix PCIe Card.
If the target cannot download packages from SiMa.ai services, use offline installation. Download the package on a computer with internet access.
Supported host operating systems
The Neat PCIe host package supports the following validated host platforms:
| Operating system | Architecture | Support |
|---|---|---|
| Ubuntu 22.04 | x86_64 | Supported |
| Ubuntu 24.04 | x86_64 | Supported |
Arm64 host builds have not yet been validated. Windows 11 is not supported.
Online installation prerequisites
Before installing the package:
- Install
sima-clion the PCIe host. Use the sima-cli installation guide. - Install and verify the PCIe host driver by following the PCIe Driver Installation guide.
- Connect and configure the Modalix PCIe Card so its management interface is
reachable from the host. The default address for card 0 is
10.0.0.2. - Install a compatible Neat Library version on the card. The host and card packages must come from compatible releases.
Authenticate the PCIe host so it can download SiMa.ai artifacts:
pcie-host$sima-cli loginInstall the PCIe Host Package
Choose a working directory on the PCIe host, then run the command for the installed Ubuntu version.
Ubuntu 22.04 on x86_64:
pcie-host$sima-cli neat install core/pciehost/ubuntu22/amd64@v0.6.1Ubuntu 24.04 on x86_64:
pcie-host$sima-cli neat install core/pciehost/ubuntu24/amd64@v0.6.1The installer adds everything needed to develop and run Neat PCIe host
applications, including the C++ API and a Python environment at
~/pyneatpcie.
It also installs the packaged neat-pcie-application-builder coding-agent
skill for Codex and Claude. Reinstalling the PCIe host package updates the
installed skill to the matching package version.
During the first installation, SSH provisioning can request the sima account
password for the card. It creates or reuses
~/.ssh/sima_neat_pcie_ed25519 and installs its public key on the card. Normal
PCIe operation then uses passwordless SSH for card-side model setup.
Verify the online installation
Confirm that the Python API and PCIe host plugin are available:
pcie-host$source ~/pyneatpcie/bin/activatepython3 -c "import pyneatpcie; print('pyneatpcie ready')"gst-inspect-1.0 neatpciehostTroubleshooting
If SSH provisioning cannot discover the card automatically, first verify that the host can reach its management address:
pcie-host$ping -c 1 10.0.0.2Then run the installed setup utility with the address explicitly:
pcie-host$pcie-setup.sh --hosts "10.0.0.2"If package installation or runtime startup fails, confirm that the PCIe host package and the Neat Library installed on the card are from compatible releases.
Offline installation
Offline installation preserves existing Python environments and their extra packages and files. Before installing packages, it runs pip check. If the environment is already broken, installation stops and reports the environment path and dependency errors. Repair the reported dependencies, using additional wheels when offline, then retry. A dependency check after installation reports any remaining or newly introduced conflicts; package changes are not automatically rolled back.
To discard an environment and install from scratch, explicitly run ./install.sh --recreate-venv (standalone Core) or sudo python3 -B install.py --recreate-venv (PCIe). This removes packages and files in the selected environment without backup. In the SDK, the option applies to the paired DevKit, not SDK host Python. Save required files first. Preflight and verification-only commands never recreate environments.
Neat PCIe offline packages are available in version 0.6.0 or later.
The PCIe package installs Neat on the host and all attached compatible cards. The target system does not need Docker or internet access for this installation. The host must have a working PCIe network connection to each card.
1. Prepare the host and cards
Complete these tasks before you run the Neat installer:
- Install the compatible Platform host driver.
- Install the matching Platform 3.0 firmware on each card.
- Configure discovery on each card's PCIe interface.
- Assign a unique PCIe IPv4 address to each card.
- Enable the SSH server on each card and have its login password available.
- Give the SSH account permission to use
sudoon each card.
The Neat installer does not install the Platform driver or change the Platform firmware. Use the system setup instructions supplied with your Platform release.
2. Download the package
Install sima-cli on the computer with internet access. See the sima-cli installation guide.
Select version 0.6.0 or later for the target host.
Packages support Ubuntu 22.04 and 24.04 hosts with amd64 or arm64 processors.
This example downloads version 0.6.1 on the computer with internet access.
For an Ubuntu 24.04 amd64 target host, run:
host$sima-cli neat install 'core/pciehost/ubuntu24/amd64@v0.6.1' -t offline -d ./pcie-offlineFor Ubuntu 22.04, replace ubuntu24 with ubuntu22.
For an arm64 host, replace amd64 with arm64.
The command downloads and extracts the package. It does not install Neat.
3. Optional: check a prepared system
- Copy the complete
pcie-offlinedirectory to the target host. Use a path without spaces. - Open the extracted
neat-offlinedirectory that containsinstall.py. - Read the supplied
INSTALL.mdfor required system tools and SSH settings. - If SSH access is already configured, run the checks:
host$sudo python3 -B install.py --preflight-onlyThe installer discovers all attached cards automatically. Do not supply card IP addresses. The checks create temporary files but do not install packages or configure SSH. On a fresh host, proceed to installation so the installer can set up SSH interactively. Correct other reported errors before installation.
4. Install and check the results
Run this command from the same directory:
host$sudo python3 -B install.pyOn a fresh host, the installer creates or reuses ~/.ssh/sima_neat_pcie_ed25519
for the user who invoked sudo and sets up SSH access to every discovered card
through the same setup script as online installation. Enter the card login
password if requested. You do not need to run ssh-keygen or ssh-copy-id
separately or enter card IP addresses.
Use --ssh-user and --ssh-key to select existing credentials. An explicit
--ssh-key must exist and have no passphrase. Automatic enrollment uses
~/.ssh/known_hosts; a custom --known-hosts file must be provisioned in advance.
Unattended installation requires SSH access to be configured in advance.
Password prompts use the terminal; passwords are not saved in logs or passed as
command arguments.
The installer checks all cards before it installs packages. It installs and verifies the host first, then each card in sequence. Check that the final summary reports successful installation and verification for the host and every card. Then run your application acceptance test.
If installation fails, read the diagnostic log at the printed path. If a card connection fails during installation, check that the card's installation process has stopped before you try again. The installer does not automatically restore the previous installation after a failure.
Next Step
Continue with PCIe Co-Processing to verify the complete host-to-card development path.
Offline installation reuses an existing ~/pyneatpcie on the host or ~/pyneat on a card or DevKit, including its symlink target. If no home environment exists, a card or DevKit uses /media/nvme/pyneat when NVMe is writable by the installing user; otherwise, it uses ~/pyneat. A new NVMe installation creates a ~/pyneat link without replacing an existing home environment.