Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isaac_toolkit-0.5.7.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

isaac_toolkit-0.5.7-py3-none-any.whl (348.7 kB view details)

Uploaded Python 3

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

Hashes for isaac_toolkit-0.5.7.tar.gz
Algorithm Hash digest
SHA256 3ed74a662fec2c3938d20a09105ccfc1ba9d3955f86c42658a1b890589132ed4
MD5 bbdbaff97284c36993b31769fdfb3f89
BLAKE2b-256 6431e8ba12a25b7f6d1f0bcf21852a1249b2f396af24189cc522ef86fd98a521

See more details on using hashes here.

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

Hashes for isaac_toolkit-0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b559f6cce91762c577075206bfb4702548ec38b7e33f387dc3ac6288fee44b84
MD5 139adb692b90915bf68d6e1cdb874291
BLAKE2b-256 d5414539b9f73bc1e3e65e16666e83f8b79506d30bb9a40e27e5a156d278219b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page