No project description provided
Project description
isaac-toolkit
Automated Customization Toolkit for Instruction Set Architectures (ISAs)
Repository Structure
Python Package
isaac_toolkit
├── algorithm
│ └── ... # work in progress
├── analysis
│ ├── dynamic # dynamic analysis tools
│ │ ├── histogram
│ │ │ ├── instr.py
│ │ │ ├── opcode.py
│ │ │ └── pc.py
│ │ ├── profile
│ │ │ └── profile.py
│ │ └── trace
│ │ ├── basic_blocks.py
│ │ ├── instr_operands.py
│ │ ├── track_used_functions.py
│ │ └── trunc_trace.py
│ └── static # static analysis tools
│ ├── dwarf.py
│ ├── histogram
│ │ ├── disass_instr.py
│ │ └── disass_opcode.py
│ ├── linker_map.py
│ ├── llvm_bbs.py
│ └── mem_footprint.py
├── artifact
│ └── artifact.py
├── backend # ISAAC backends
│ ├── isa # not implemented
│ │ └── ...
│ ├── ise # not implemented
│ │ └── ...
│ ├── memgraph # annotate CFDG database with bb_weights
│ │ └── annotate_bb_weights.py
│ └── profile # not implemented
│ └── ...
├── frontend # ISAAC frontends
│ ├── cfg # configuration parsing
│ │ └── yaml.py
│ ├── disass
│ │ └── objdump.py
│ ├── elf
│ │ └── riscv.py
│ ├── instr_trace
│ │ ├── etiss.py
│ │ └── spike.py
│ ├── isa # work in progress
│ │ └── ...
│ ├── linker_map.py
│ ├── memgraph # work in progress
│ │ ├── llvm_ir_cdfg.py
│ │ └── llvm_mir_cdfg.py
│ ├── mem_trace # not implemented
│ │ └── ...
│ └── source # not implemented
│ └── ...
├── generate # ISAAC generators
│ ├── ise # Propose ISAXes
│ │ ├── choose_bbs.py
│ │ ├── pool
│ │ │ └── random.py
│ │ └── query_candidates_from_db.py
│ └── iss # ISS retargeting
│ └── generate_etiss_core.py
├── session # Infrastructure for sessions/artifacts
│ ├── artifact.py
│ ├── config.py
│ ├── create.py
│ ├── session.py
│ └── summary.py
├── utils
│ ├── cli.py
│ ├── nx_converter.py # Nextworkx graph to images
│ ├── pickle_printer.py # Convert pickle files (including DFs to text)
│ └── ...
└── visualize
└── pie # Pie chart generators
├── disass_counts.py
├── mem_footprint.py
└── runtime.py
Examples
Usage
Prerequisites
Install (optional) APT Requirements: sudo apt install libgraphviz-dev
Setup a Python virtual environment:
virtualenv -p python3 venv/
# Alternative: python3 -m venv venv/
Install packages:
pip install -e .
# Optional:
pip install -e ".[dev]"
pip install -e ".[memgraph]"
Demo
Package installation: TODO
Make sure to add the top level directory of this repository to your Python path:
export PYTHONPATH=$(pwd):$PYTHONPATH
For Python v3.10+ you can also just use pip install -e .!
Minimal example:
python3 -m isaac_toolkit.session.create --session sess/
python3 -m isaac_toolkit.session.summary --session sess/
See Examples/standalone/coremark/README.md for an end-to-end example.
Development
Style
We use the black formatter to maintain a consistent Python style (See setup.cfg & pyproject.toml)
Pylint config is also available, but not enforced.
Testing
First, make sure that the additional development packages are installed via:
pip install -r requirements_dev.txt
Run Pytest:
python3 -m pytest tests -rs -s
Create Coverage Report:
coverage run --source isaac_toolkit -m pytest tests
coverage report -m
coverage html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isaac_toolkit-0.5.7.tar.gz.
File metadata
- Download URL: isaac_toolkit-0.5.7.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ed74a662fec2c3938d20a09105ccfc1ba9d3955f86c42658a1b890589132ed4
|
|
| MD5 |
bbdbaff97284c36993b31769fdfb3f89
|
|
| BLAKE2b-256 |
6431e8ba12a25b7f6d1f0bcf21852a1249b2f396af24189cc522ef86fd98a521
|
File details
Details for the file isaac_toolkit-0.5.7-py3-none-any.whl.
File metadata
- Download URL: isaac_toolkit-0.5.7-py3-none-any.whl
- Upload date:
- Size: 348.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b559f6cce91762c577075206bfb4702548ec38b7e33f387dc3ac6288fee44b84
|
|
| MD5 |
139adb692b90915bf68d6e1cdb874291
|
|
| BLAKE2b-256 |
d5414539b9f73bc1e3e65e16666e83f8b79506d30bb9a40e27e5a156d278219b
|