For most users, the recommended path is to create a virtual environment and install directly from GitHub:
python3 -m venv .venv
source .venv/bin/activate
pip install git+https://github.com/ebzych/amphimixis.git@stableThis is the recommended path if you only want to run amixis and do not want to install anything into the system Python environment.
If you are developing Amphimixis itself, clone the repository and install dependencies with uv:
git clone https://github.com/ebzych/amphimixis.git
cd amphimixis
uv syncIf you specifically want to build a wheel locally and test the packaged artifact, use:
python3 -m venv .venv
source .venv/bin/activate
uv build
pip install dist/*.whlRun Amphimixis from a working directory that contains your configuration and any generated artifacts. Before starting, create an input.yml file there.
rsyncon the machine where you run AmphimixisperfinPATHperf archiveon eachrun_machinesshpassif your remote connections use passwords
sudo apt install rsync sshpass linux-tools-common linux-tools- Configuration reference: config_instruction.md
- Example file: input.yml
At minimum, input.yml should describe:
- the build system and runner
- the target platforms
- the build recipes
- the builds that connect platforms and recipes
In builds, you can optionally specify an executables list for each build. Each path must be relative to that build's output directory, for example bin/my_app. If executables is omitted, Amphimixis profiles the first executable file it finds in the build directory.
If your configuration uses remote machines authenticated with SSH keys, start ssh-agent in the current shell and add the required keys before running the tool:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_remote_machineTo analyze, build, and profile a project in one command:
amixis run /path/to/projectThe full pipeline:
- analyzes the project
- builds it using the selected configuration
- profiles the resulting executables
- prints profiling results in the console
Analyze only:
amixis analyze /path/to/projectBuild only:
amixis build /path/to/projectProfile only:
amixis profile /path/to/projectValidate a configuration file:
amixis validate /path/to/input/configSpecify the path to the configuration file:
amixis run --config ./my_input.yml /path/to/projectThe same flag works with profiling-only mode:
amixis profile /path/to/project --events cycles cache-missesWith the main pipeline or profile, --events tells perf record which events to collect.
To compare two collected .scriptout files:
amixis compare build1.scriptout build2.scriptoutTo limit how many symbols with the largest delta are shown for each event:
amixis compare build1.scriptout build2.scriptout --max-rows 10Add a new toolchain to the global configuration file:
amixis add toolchainIf you want to clean up on your build directories from previous builds, use:
# To interactively select builds to clean
amixis clean
# To clean specific builds by name
amixis clean build-name-1 build-name-2 ...
# To clean all builds
amixis clean --all