BitFly is a research codebase with a strict boundary between maintained source overlays and the synced Ara working tree. Contributions are much easier to review if they follow that boundary.
Good contributions include:
- BMPU/BMPMM hardware or software improvements under
src/ - benchmark or generator fixes
- documentation improvements
- reproducibility fixes
- analysis and plotting fixes
Before opening a change, make sure it belongs to BitFly rather than only to your local ara/ worktree.
- Edit
src/if the change should be preserved as part of BitFly. - Edit
ara/directly only for temporary local experiments or Ara-upstream-only work. - If a useful change started in
ara/, promote it back intosrc/before preparing a reviewable patch.
The maintained sync path is:
scripts/dev/sync_src_to_ara.sh| Path | Use |
|---|---|
src/apps/ |
benchmark apps, generators, shared app logic |
src/hardware/rtl/bmpu/ |
BMPU-local RTL and focused testbenches |
src/hardware/rtl/extended/ |
Ara integration RTL overlays |
src/llvm_instr/ |
custom instruction support |
scripts/ |
automation, debug, and analysis tooling |
docs/ |
workflow, artifact, and repository documentation |
Please do the following:
- Keep the diff scoped to one technical concern.
- Sync from
src/intoara/if the change needs Ara-side validation. - Run the smallest relevant validation for your change.
- Update documentation if user-facing behavior or workflow changed.
- Avoid committing local logs, generated plots, large binaries, or temporary run outputs unless the change explicitly requires a tracked artifact.
Pick the narrowest useful check:
- BMPU correctness:
make -C ara/hardware simv app=bmpu_verify - one benchmark app smoke test:
scripts/benchmarks/run_model_split_apps.sh \
--mode run \
--apps <app> \
--parallel 1 \
--batch-size 1- analysis-only change:
python3 scripts/analysis/roofline.pyIf you could not run a relevant validation, state that clearly in the PR description.
- Prefer small, reviewable commits.
- Use descriptive commit messages that explain the technical change, not only the symptom.
- In PR descriptions, include:
- what changed
- why it changed
- how it was validated
- any remaining caveats
BitFly is intended to be understandable to paper readers and artifact evaluators. If you add a new workflow, command surface, or directory role, update the relevant README or docs/ entry at the same time.
If the right ownership boundary is unclear, open an issue or explain the uncertainty in the PR description before expanding the patch.