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.