turboquant-elyan / CONTRIBUTING.md
elyanlabs's picture
Source snapshot of github.com/Scottcjn/turboquant-elyan@ee32f7d
5d35978 verified
|
Raw History Blame Contribute Delete
1.67 kB

Contributing to TurboQuant Elyan

Thanks for your interest in contributing!

How to Contribute

Bug Reports

  1. Search existing issues to avoid duplicates
  2. Open a new issue with clear reproduction steps
  3. Include compiler, OS/arch, and whether the VSX or scalar path was used

Code Contributions

  1. Fork this repository
  2. Create a branch: git checkout -b feature/your-feature
  3. Write code in the style of the file you are touching
  4. Add tests for new functionality
  5. Submit a PR with a clear description

Code Style

  • C11 for ggml-turboquant-vsx.h, CUDA C++ for turboquant_cuda_kernel.cu
  • 4-space indent, _tq3_ prefix on internal helpers
  • The header must keep building with no -mvsx: the scalar fallback is the reference implementation

Testing

make test                        # suite + tq3_self_test(), scalar or native VSX
make test-vsx                    # cross-build for POWER8
sh tests/check_backends_agree.sh # header, CUDA kernel and README agree
  • New features require new tests
  • All tests must pass on CI
  • Anything that changes norm, scale or the packed indices also changes the golden block in tests/test_turboquant_vsx.c; regenerate it and say so in the PR, since it is what pins cross-backend bit-exactness

Quality Checklist

  • Code follows project style
  • New code has tests
  • All existing tests pass
  • No hardcoded secrets or API keys
  • Documentation updated if needed

Code of Conduct

Be respectful. Constructive feedback only. No harassment.

License

By contributing, you agree your code is licensed under the same license as this project.