Skip to content

Repository files navigation

CI Docs License

Amphimixis Logo

Amphimixis

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.

Performance cross-table example

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.

EVENT: BRANCH-MISSES

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

EVENT: CYCLES

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_evex AVX-512 on x86 vs scalar strncmp on RISC-V) or the event is not available on RISC-V (cycles is approximated by the cpu-clock event).

Requirements

See the Usage Guide → Requirements for the full list of required tools and system dependencies.

Quick Start

See the Usage Guide → Quick Start to try Amphimixis right away.

Documentation

Project Structure

The repository is organized around a small CLI and several core modules:

How To Help

Contributions are welcome. Before submitting a pull request, make sure local checks pass:

ci/runner.sh

See the CONTRIBUTING for details on bug reports, pull request guidelines, and test categories.

License

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.