Build FrontendΒΆ
tools/symmetrix_build.py is the maintained entry point for isolated backend
builds and release artifacts. It resolves a target, validates its toolchain,
and records the selected package and backend configuration in the build
manifest. Run commands from the repository root with the Python interpreter
for the target environment.
Command |
Purpose |
|---|---|
|
Resolve a CPU, CUDA, or HIP target and print or write its manifest. |
|
Validate the requested target and toolchain without compiling. |
|
Build and install the selected frontend/backend into the active Python environment. |
|
Build one backend-specific wheel into a required output directory. |
|
Build repeated |
|
Stage a self-contained source distribution at the pinned submodule commits. |
|
Integrate |
For accelerator LAMMPS builds, --require-gpu-aware-mpi implies --mpi on and
requires the selected wrapper to pass the CUDA or ROCm MPIX provider query
before configuration. The evidence becomes part of the fingerprinted build
provenance. See LAMMPS Integration for the complete build and runtime
qualification workflow.
The lammps command accepts repeatable --lammps-package NAME arguments and
repeatable --lammps-cmake-define NAME=VALUE arguments. Package selections are
validated against the supplied source tree and installed executable. Both forms
are recorded in the build provenance and therefore select a distinct build
directory. The frontend rejects extra definitions in its managed PKG_*,
Kokkos_*, and SYMMETRIX_* namespaces. lammps --dry-run performs preflight
without creating the selected build directory and emits one JSON document with
the resolved invocation and provenance.
The command help is the authoritative option reference:
python tools/symmetrix_build.py --help
python tools/symmetrix_build.py <command> --help
Use a fresh virtual environment and a separate --build-root for every
backend and architecture. wheel-matrix target specifications include forms
such as cpu:x86-64-v3, cuda:13:sm120, and hip:7:gfx1151. Direct CMake
configuration remains a diagnostic path; the supported installation workflow
is described in Installation, with backend-specific requirements
in Backends and Diagnostics.
Within one fixed backend/toolchain configuration, repeated install commands
are incremental and should reuse the same build root. The command installs
scikit-build-core, pybind11, and ninja into the target environment once,
then uses no-build-isolation and a forced reinstall of the selected
distribution. It records the current source content fingerprint and passes
that fingerprint into the native build metadata. Use a fresh process to verify
the installed extension after each rebuild. Source changes require new
fingerprinted JIT artifact keys, not a new package build root or cache
directory.