Onboarding & Compatibility
Guide for contributors and users on architecture, workflow, and platform requirements.
For New Contributors
1. Development Setup
Follow the setup instructions in README based on your platform (macOS, Linux, or Windows).
2. Architecture Overview
- Local CPU Processing: Image tiling and stitching using C/C++ with OpenCV or stb_image
- GPU Acceleration: CUDA (Linux/Windows) or Metal (macOS) for upscaling
- Python Orchestration: Pipeline coordination and testing
3. Development Workflow
- Fork and clone the repository
- Create a feature branch from
main - Implement changes following commit standards
- Run the full test suite (
./scripts/run.sh) - Open a pull request with a clear description
4. Important Files
CMakeLists.txt: Build configurationsrc/preprocess.c: CPU image preprocessingcloud_gpu/upscale.cu: CUDA upscalingsrc/metal/Upscale.metal: Metal shaderscripts/e2e.py: End-to-end testing
5. Testing Requirements
- Unit tests (
ctest) - Integration tests (
pytest) - Cross-platform builds (macOS, Linux, Windows)
- Docker-based isolation tests
For Users
./scripts/setup.sh ./scripts/run.sh
Supported Platforms
| Platform | Architecture | GPU | Status |
|---|---|---|---|
| macOS 11.0+ | x86_64, ARM64 | Metal | Active |
| Ubuntu 20.04+ | x86_64 | CUDA 11.8+ | Active |
| Windows 10+ | x86_64 | CUDA 11.8+ | Active |
Language Versions
- C/C++: C17 / C++20
- CUDA: 11.8+
- Metal: macOS 11.0+
- Python: 3.9+
Compatibility Guarantees
API Stability:
- Major (X.0.0): Breaking changes allowed
- Minor (x.Y.0): Backward-compatible features
- Patch (x.y.Z): Bug fixes only
Support Timeline
- Bug fixes: 2 years after initial release
- Security updates: 3 years
- Platform support: As long as vendor supports