Skip to main content

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.

Install on the PCIe host machine

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.

When to use offline installation

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 systemArchitectureSupport
Ubuntu 22.04x86_64Supported
Ubuntu 24.04x86_64Supported

Arm64 host builds have not yet been validated. Windows 11 is not supported.

Online installation prerequisites​

Before installing the package:

  • Install sima-cli on 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 login

Install 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.1

Ubuntu 24.04 on x86_64:

pcie-host$sima-cli neat install core/pciehost/ubuntu24/amd64@v0.6.1

The 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 neatpciehost

Troubleshooting​

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.2

Then 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​

Check Python dependencies before 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 sudo on 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-offline

For 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​

  1. Copy the complete pcie-offline directory to the target host. Use a path without spaces.
  2. Open the extracted neat-offline directory that contains install.py.
  3. Read the supplied INSTALL.md for required system tools and SSH settings.
  4. If SSH access is already configured, run the checks:
host$sudo python3 -B install.py --preflight-only

The 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.py

On 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.