Amphimixis is an automated project intelligence and evaluation tool for performance and migration readiness.
Amphimixis has the amixis console utility with formal tools for analyzing the repo, building and profiling projects on remote (via SSH) and local machines, and comparing results in a cross-table of two builds per CPU event. Amphimixis also integrates with LLM-chat --- Amphimixis-AI. It is an LLM-agent system with tool-wrappers around the amixis CLI. Amphimixis-AI can automate the migration analysis and generate a report about project portability by Report Template.
Amphimixis simplifies migration readiness exploration and performance analysis by partially implementing our Methodology.
The cross-table below was generated by running Amphimixis on a YAML project, comparing builds on RISC‑V and x86.
What does a cross-table contain? The cross-table displays gathered performance counter profiles (by CPU events for each function) of the two builds for performance comparison.
Note: For readability, only the most significant rows per event are shown, with
[unknown]symbols removed. See the complete 10-row tables in Usage Examples.
| Symbol | 2_2_2 (RISC-V) % | 1_1_1 (x86) % | Delta % |
|---|---|---|---|
__strncmp_evex |
0.00 | 32.97 | +32.97 |
strncmp |
25.75 | 0.00 | -25.75 |
tinyxml2::StrPair::ParseText(char*, char const*, int, int*) |
8.62 | 25.64 | +17.02 |
tinyxml2::XMLNode::DeleteNode(tinyxml2::XMLNode*) |
0.00 | 6.38 | +6.38 |
tinyxml2::XMLDocument::Identify(char*, tinyxml2::XMLNode**, bool) |
3.73 | 0.00 | -3.73 |
| Symbol | 2_2_2 (RISC-V) % | 1_1_1 (x86) % | Delta % |
|---|---|---|---|
tinyxml2::StrPair::ParseText(char*, char const*, int, int*) |
6.86 | 16.43 | +9.56 |
tinyxml2::XMLDocument::Identify(char*, tinyxml2::XMLNode**, bool) |
12.25 | 3.27 | -8.99 |
tinyxml2::XMLNode::ParseDeep(char*, tinyxml2::StrPair*, int*) |
8.82 | 11.53 | +2.71 |
isspace |
2.45 | 4.94 | +2.48 |
isalpha |
3.43 | 1.53 | -1.90 |
What do
0.00%mean?0.00%values mean the symbol exists only on one architecture (e.g.__strncmp_evexAVX-512 on x86 vs scalarstrncmpon RISC-V) or the event is not available on RISC-V (cyclesis approximated by thecpu-clockevent).
See the Usage Guide → Requirements for the full list of required tools and system dependencies.
See the Usage Guide → Quick Start to try Amphimixis right away.
- Usage Guide — installation options, workspace setup, all commands, perf events, SSH auth
- Configuration File Guide — full
input.ymlschema reference - Troubleshooting — common issues and solutions
- Contributing Guide — how to contribute, local checks, pull request guidelines
- Usage Examples — practical migration and profiling scenarios
- Migration Readiness Methodology — systematic process for evaluating cross-platform migration readiness
The repository is organized around a small CLI and several core modules:
- amphimixis/amixis/__main__.py is the CLI entry point
- amphimixis/core/analyzer.py inspects a target project
- amphimixis/core/builder.py runs configured builds
- amphimixis/core/profiler.py gathers execution and profiling data
- amphimixis/core/validator.py validates
input.yml - amphimixis/core/shell contains local and remote shell backends
- amphimixis/core/build_systems adapts build systems (CMake, Make, Ninja)
- docs contains user-facing documentation
Contributions are welcome. Before submitting a pull request, make sure local checks pass:
ci/runner.shSee the CONTRIBUTING for details on bug reports, pull request guidelines, and test categories.
The project is distributed under the MIT License. This project includes dependencies under various licenses — see NOTICE and the third_party_licenses/ directory for details.