Roadmap
=======

This document outlines potential future directions for Panther development. These are aspirational goals and not commitments to specific timelines or features.

Current Status (v0.1.2)
-----------------------

**Available Features**

- ✅ Core sketching algorithms (CQRRPT, Randomized SVD)
- ✅ SKLinear layer implementation
- ✅ SKConv2d layer implementation
- ✅ RandMultiHeadAttention mechanism
- ✅ CUDA kernel support
- ✅ PyTorch integration
- ✅ C++/CUDA backend (pawX)
- ✅ SKAutoTuner with multiple search algorithms
- ✅ Documentation and examples

**Current Limitations**

- Single-node training only
- Limited to implemented layer types
- CUDA 12.4+ required for GPU acceleration (CPU-only mode fully supported)
- Windows and Linux fully supported (macOS experimental, CPU-only)

Potential Future Directions
---------------------------

The following are areas being considered for future development. Community contributions and feedback will help shape priorities.

**Enhanced Neural Network Support**

- Additional sketched layer types (LSTM, GRU, etc.)
- More attention mechanism variants
- Additional convolution operation types
- Transformer block optimizations

**Performance Optimizations**

- Enhanced CUDA kernel implementations
- Dynamic sketching with adaptive parameters
- Support for additional GPU architectures

**Platform and Framework Support**

- Improved macOS support
- ARM64 architecture support  
- Potential integration with other frameworks
- Multi-GPU training support

**Developer Tools**

- Enhanced debugging and profiling utilities
- Additional AutoTuner optimization strategies
- Better performance analysis tools
- Expanded documentation and examples

**Algorithm Improvements**

- Additional sketching methods
- Hierarchical sketching approaches
- Task-specific optimization strategies
- Improved accuracy-performance tradeoffs

Contributing
============

Community contributions are welcome! If you're interested in working on any of these areas or have other ideas, please:

- Open an issue on GitHub to discuss your proposal
- Check existing issues for areas where help is needed
- Submit pull requests with improvements

The actual development path will depend on:

- Community needs and feedback
- Contributor interests and availability
- Technical feasibility
- Resource availability

For questions or suggestions about future directions, please open an issue on the GitHub repository.
