Installation
Installing CIMFlow on Linux systems
System Requirements
Installation instructions are provided for Ubuntu/Debian. Contributions for other Linux distributions are welcome.
Python Environment Setup
Create an isolated Python environment for CIMFlow.
Create environment with Python 3.11:
conda create -n cimflow python=3.11
conda activate cimflowIf Conda is not installed, see the Miniconda installation guide.
Create virtual environment:
python3.11 -m venv .venv
source .venv/bin/activateEnsure Python 3.11 is available on your system before creating the venv.
System Dependencies
Install required system packages:
Build Tools
sudo apt install build-essential cmake ninja-build ccacheClang Toolchain
Required for LLVM/MLIR compilation.
sudo apt install clang lldJava Development Kit
Required for ANTLR parser generation.
sudo apt install openjdk-11-jdkRequired Libraries
sudo apt install libeigen3-dev libunwind-devInstallation
Clone the Repository
git clone https://github.com/BUAA-CI-LAB/CIMFlow.git
cd CIMFlowRun Installation Script
With your virtual environment activated:
./install.shThe first installation takes 20-30 minutes to build LLVM/MLIR. Subsequent builds are faster with ccache. Do not interrupt the installation during submodule initialization.
The installation script performs the following:
- Initializes top-level submodules (CIMFlow-Compiler, CIMFlow-Simulator)
- Initializes nested submodules (including LLVM/MLIR)
- Builds and installs submodules (compiler and simulator)
- Installs the main CIMFlow Python package and CLI tools
- Sets up configuration in
config/tool_paths.json
Post-Installation
Verify the installation:
cimflow --versionExpected output:
CIMFlow 0.1.0View available commands:
cimflow --helpCheck that the configuration file exists:
cat config/tool_paths.jsonThis file contains paths to the compiler and simulator executables generated during installation.
Installation Options
Troubleshooting
Development Installation
For contributors modifying CIMFlow:
git clone https://github.com/BUAA-CI-LAB/CIMFlow.git
cd CIMFlow
git submodule update --init --recursive
./install.shSee CONTRIBUTING.md for development guidelines.
Last updated on