Thanks for your interest in contributing to mlperf-common (primus-mllog)!
This project provides MLPerf-compliant training logging utilities for ROCm Primus.
Contributions of all kinds are welcome — bug reports, documentation, and code.
- Code of Conduct
- Ways to Contribute
- Development Setup
- Making Changes
- Commit Sign-Off (DCO)
- Pull Request Process
- Coding Guidelines
- Reporting Security Issues
- License
Please be respectful and constructive in all interactions. We want this to be a
welcoming, harassment-free community for everyone. Report unacceptable behavior
to the maintainers listed in .github/CODEOWNERS.
- Report a bug — open a GitHub Issue with steps to reproduce, expected vs. actual behavior, and your environment (ROCm version, GPU, PyTorch, Megatron/Primus versions).
- Suggest an enhancement — open an issue describing the use case and proposed change.
- Submit a fix or feature — open a pull request following the process below.
- Improve documentation — corrections and clarifications to the README or docstrings are appreciated.
This is a Python package. For local development:
git clone https://github.com/AMD-AGI/mlperf-common.git
cd mlperf-common
python -m venv .venv && source .venv/bin/activate # optional
pip install -e .Runtime features assume a ROCm-enabled PyTorch stack (AMD Instinct GPUs such as
MI300X / MI355X) plus mlperf-logging, Primus, and Megatron-LM / Megatron-Core.
You can develop and review most logging logic without GPUs, but end-to-end
validation requires the full training stack.
- Fork the repository (external contributors) or create a branch (maintainers).
- Create a descriptive branch, e.g.
fix/eval-stop-timingordocs/update-readme. - Keep changes focused and reasonably small — one logical change per pull request.
- Update the README and docstrings when you change public behavior or configuration.
This project uses the Developer Certificate of Origin. Every commit must be signed off to certify that you wrote the change or otherwise have the right to submit it under the project's license:
git commit -s -m "Short, imperative summary of the change"The -s flag adds a Signed-off-by: Your Name <your.email@example.com> trailer.
Use a real name and email.
- Ensure your branch is up to date with
main. - Push your branch and open a pull request against
main. - In the PR description, explain what changed and why, and link any related issue.
- A maintainer (see
.github/CODEOWNERS) will be requested for review automatically. - Address review feedback and keep the PR rebased/mergeable.
- PRs are merged once they have an approving review and any CI checks pass.
- Target Python and follow the style and structure already present in
primus_mllog/. - Prefer clear, self-documenting code; add comments only where intent is non-obvious.
- Keep rank-awareness and MLPerf-logging semantics intact — spurious events or wrong-rank emissions can invalidate an MLPerf submission.
- New configuration should be driven by environment variables and documented in the README's configuration tables.
Please do not report security vulnerabilities through public issues or pull
requests. Follow the process in SECURITY.md instead.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0, the same license that covers this project.