How to contribute to the BESS-KGE project
You can contribute to the development of the BESS-KGE project, even if you don’t have access to IPUs (you can use the IPUModel to emulate most functionalities of the physical hardware).
Setup on local machine
To develop on a local machine, first install the Poplar SDK following the instructions in the Getting Started guide for your IPU system.
Then, enable the Poplar SDK, create and activate a Python virtualenv and install the PopTorch wheel and all the necessary dependencies:
python3.8 -m venv .venv
# Add to .venv/bin/activate
# source /PATH_TO_POPLAR_SDK/enable
source .venv/bin/activate
pip install wheel
pip install $POPLAR_SDK_ENABLED/../poptorch-*.whl
pip install -r requirements-dev.txt
Finally, clone your fork of the BESS-KGE repository and build all custom ops by running ./dev build
Development tips
The ./dev command can be used to run several utility scripts during development. Check ./dev --help for a list of dev options.
Before submitting a PR to the upstream repo, use ./dev ci to run all CI checks locally. In particular, be mindful of our formatting requirements: you can check for formatting errors by running ./dev format and ./dev lint (both commands are automatically run inside ./dev ci).
Add unit tests to the tests folder. You can run individual unit tests with pattern matching filtering ./dev tests -k FILTER.
Add .cpp custom ops to besskge/custom_ops. Also, update the Makefile when adding custom ops.