This directory contains a minimal placeholder implementation of an NCCL tuner plugin. It serves as a starting point for developing custom tuner plugins by providing the essential function stubs and interface structure required by NCCL.
## Purpose
This basic plugin is designed to:
- Provide a minimal working example of the NCCL tuner plugin interface
- Serve as a template for developing custom tuner plugins
- Demonstrate the required function signatures and structure
- Implement placeholder functionality that can be extended
Read configuration from files, environment variables, or other sources.
### 4. Add Topology Awareness
Use the `nRanks` and `nNodes` parameters to implement topology-specific tuning.
## File Structure
```
basic/
├── README.md # This file
├── plugin.c # Plugin implementation
├── Makefile # Build configuration
└── nccl/ # NCCL header files
└── tuner.h # Tuner plugin interface definitions
```
## Next Steps
1.**Understand the Interface**: Study the function signatures and parameters
2.**Implement Your Logic**: Add your tuning strategy to `pluginGetCollInfo`
3.**Test Thoroughly**: Verify your plugin works with different message sizes and topologies
4.**Add Error Handling**: Implement proper error checking and resource management
5.**Document Your Changes**: Update this README with your specific implementation details
## Comparison with Example Plugin
- **Basic Plugin**: Minimal implementation, good for learning and simple use cases
- **Example Plugin**: Full-featured CSV-based configuration system, good for production use
Choose the basic plugin if you want to:
- Learn the tuner plugin interface
- Implement simple, hardcoded tuning strategies
- Build a custom plugin from scratch
Choose the example plugin if you want:
- File-based configuration
- Complex tuning strategies
- Production-ready features
## Resources
- [Parent Directory README](../README.md) - General tuner plugin development guide
- [Example Plugin](../example/README.md) - Fully featured implementation
This basic plugin provides the foundation you need to start developing custom NCCL tuner plugins. Extend it with your specific tuning logic and requirements.