Ubuntu ARM64 host

Identify the distribution, architecture and existing Cohesix installation. For an NVIDIA workload, inspect the GPU model/compute capability, driver, CUDA and container runtimes. On Jetson, record the actual JetPack/L4T release; nvidia-smi may be unavailable there. For a compatible Ubuntu ARM64 host, use the verified cohesix-controller .deb for host tools under /usr/lib/cohesix/bin. Add the optional cohesix-swarmui .deb for GNOME; headless operation needs no desktop package. Verify downloaded package hashes and installers.json.asc using an independently authenticated publisher key as the selected Quickstart specifies. Check package-manager ownership and the installed version; GNOME launch should work without an inherited shell environment. Use package-manager remove or purge according to the selected release’s state-retention guidance. An archive is a valid portable alternative and still supplies matching QEMU guest files; the .deb packages do not install the guest or QEMU.

For an NVIDIA workload, read the selected host’s live inventory and the NVIDIA Jetson PyTorch compatibility table before choosing a PyTorch image or wheel. For a different NVIDIA AArch64 host, use its own driver/architecture compatibility evidence. Do not replace board-managed drivers or a working iGPU PyTorch build with a generic CUDA wheel merely to align version strings.

Tool Setup decision Proof
Optional QEMU guest On supported Ubuntu ARM64, use the matching release archive’s ./scripts/setup_environment.sh --with-qemu, which obtains qemu-system-aarch64 from apt’s qemu-system-arm package if needed. Add --headless on a server without SwarmUI to omit graphical packages. Host-only, Pi and remote executor operation need no local QEMU. A selected external QEMU_BIN is checked rather than silently replaced. Check four-core KVM startup and /dev/kvm access, then boot the Linux guest and make an authenticated client request. Ubuntu 24.04’s apt QEMU passed that journey on the selected Jetson; that observation does not qualify every Ubuntu release or pressure lane.
Cohesix host build tools If required, run the maintained setup_linux_arm64.sh for supported Ubuntu ARM64. It does not install a CUDA workload runtime. Confirm its selected build tools separately from GPU checks.
CUDA + PyTorch Select a compatible native runtime or digest-pinned NVIDIA/JetPack container for the GPU workload. Inspect useful existing images and mounts before pulling or pruning. Keep model/cache storage on a volume with sufficient space. In that exact runtime, inspect CUDA availability, actual device name and supported compiled GPU architectures; perform a real CUDA forward/backward/optimizer step.
Hugging Face + PEFT Make hf available to the selected user or service through a working install or pipx; put Transformers, Accelerate, PEFT and their PyTorch dependency in the selected GPU runtime. Pin base model, adapter and package revisions. Resolve hf in its launch context, run hf version and runtime pip check, then load an adapter and perform a small CUDA LoRA forward/backward/optimizer step with nonzero gradients.
NeMo Agent Toolkit Install the selected pinned nvidia-nat[mcp,a2a] release following NVIDIA’s install guide. Reuse a compatible client environment; isolate NAT from the GPU image only when their dependency sets conflict. Record the exact nat executable; do not assume a login-shell PATH is present under SSH or a service. Do not install full NeMo Framework, NIM, Guardrails, Triton or Kubernetes unless a selected workflow needs one. Run the pinned executable’s --version and dependency check in the actual launch context, then native MCP tool ping/list/call and A2A Agent Card/task helpers on the selected transport. Test protected credentials and user scope against the real endpoint before claiming Cohesix integration.

The Jetson test bed has used a dedicated HF/PEFT GPU container, a user-wide hf command, and a separate NeMo client environment because that combination passed its local compatibility checks. Treat those as inventory examples, not portable pins. A container can expose an ordinary launcher without requiring operators to activate another Python venv. Keep Docker privileges scoped to the host policy; do not make passwordless root or docker-group membership a setup shortcut.

For NeMo, verify the selected release’s native MCP client and A2A client against the selected Cohesix transport and auth. A temporary local fixture is client compatibility evidence only. A live accepted CUDA/PEFT operation needs the original job identity, native receipt and Cohesix verifier result under the Test Plan.