Skip to content

NCCL provider manifest format

ColdSnap selects an NCCL checkpoint provider from a local catalog with:

coldsnap nccl-provider inspect --provider <provider-root>
coldsnap nccl-provider verify --provider <provider-root>
coldsnap nccl-provider assemble --source-root <checkout> --recipe <recipe.json> \
--qualification <qualification.json> --payload <build-output> \
--target <target.json> --output <provider-root>
coldsnap nccl-provider select --catalog <catalog> --target <target.json>
coldsnap nccl-provider materialize --catalog <catalog> --target <target.json> --output <clean-root>

The catalog hierarchy is providers/<provider-id>/<platform-key>/provider-manifest.json. Provider IDs and platform keys must agree with their directory names. A selector validates the entire catalog before returning one exact match; corrupt nonmatching providers are not ignored.

Manifest JSON is decoded with unknown fields disabled. Format 2 binds:

  • the provider ID/revision and exact platform key;
  • the patched provider NCCL version, release, SONAME, build ID, and SHA-256;
  • whether that payload was selected exactly or as a fallback upgrade;
  • a finite set of complete base-image NCCL identities, separately from the patched provider payload;
  • provider, NVIDIA checkpoint, and dlsym-bridge ABIs;
  • sorted capabilities and explicit limitations;
  • architecture/CUDA requirements and libc/libstdc++ floors;
  • every regular payload’s path, role, mode, size, SHA-256, and ELF identity;
  • source/build provenance and an accepted capability-admission policy; and
  • the logical preload order coldsnap-dlsym-bridge, checkpoint-shim, nccl-runtime.

Verification rejects traversal, symlinks, hard links, special files, undeclared files, incorrect modes/sizes/hashes, unsupported ELF machines, and build-ID or SONAME disagreement. Provider code is never loaded by the selector.

Assembly also verifies every release-owned patch digest and its exact series order. Output contracts declare paths, roles, and SONAMEs. Assembly inspects the actual ELF architecture, SONAME, and build ID, computes fresh payload hashes, and binds those values into the immutable manifest. It does not compare a new build with historical compiler-output hashes.

The compiled payload is distributed independently from target-image assembly. Each immutable provider-revision tag in docker.io/scitrera/coldsnap-nccl is a native linux/amd64 and linux/arm64 OCI index. The release recipe pins the multiarch CUDA build image, supported host platforms, and GPU code-generation set. Consumers resolve the versioned OCI tag to a digest before assembly; Docker selects the matching host architecture. Local source builds remain an explicit fallback and produce equally verifiable manifests, but are not mistaken for historical golden binaries.

The release-owned qualification.json is the admission boundary for features. It must explicitly accept the provider ID, policy, complete capability set, transport classes, and completed check classes. Adding a capability therefore requires updating the admission record after its checks pass. The record has no benchmark-report dependency or wall-clock expiry; Git history and release review preserve the decision, while CI checks the machine-readable contract.

Target observations use kind coldsnap-nccl-provider-target, format 1. They bind a digest-pinned base image, the complete observed system NCCL identity, the exact platform key, observed CUDA/libc/libstdc++ values, required provider and bridge ABIs, sorted required capabilities, qualification policy, and transport class. The default nccl_policy is exact: the provider NCCL release must match the target release and a fallback-built provider is rejected. The base path, build ID, and SHA-256 remain diagnostic provenance, but are not ABI selection keys; same-release rebuilds with the same SONAME are accepted.

An orchestrator may explicitly set nccl_policy to match-or-latest-qualified. Assembly then permits a newer provider in the same NCCL major series, while still binding the complete base and provider identities into the build record and manifest. It does not permit downgrades or cross-major substitution. The orchestrator is responsible for selecting only an accepted release qualified for the requested capabilities and transport. Restore does not re-run this policy: the artifact and active runtime retain the exact provider payload selected at image-build time.

The image installer writes /opt/coldsnap/nccl/active.json after installing one provider below its immutable ID/platform path. The separately built bridge hash is recorded there. Rank launch code revalidates this record, the provider manifest, every loadable file, and the loaded provider NCCL version before capture or restore.