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
```bash
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.