Purpose: Comprehensive context for AI agents working with the oneDAL repository structure, coding standards, and development guidelines.
oneDAL (oneAPI Data Analytics Library) is a high-performance C++ library for machine learning algorithms, providing both traditional DAAL interfaces and modern oneAPI interfaces with SYCL support for GPU acceleration.
Integration Note: oneDAL works with scikit-learn-intelex. They share common validation aspects and provide accelerated machine learning capabilities together.
- Language: Modern C++ (17+)
- Architecture: Dual interface system (DAAL + oneAPI)
- Build Systems: Make (production), CMake (integration), Bazel (development/testing)
- Targets: CPU (SIMD optimized), GPU (SYCL), Distributed (MPI)
- License: Apache License 2.0
daal/
├── cpp/ # Core C++ implementation
│ ├── daal/ # Traditional DAAL interface
│ └── oneapi/ # Modern oneAPI interface
├── dev/ # Development tools and build configs
├── examples/ # Usage examples and tutorials
├── docs/ # Documentation and API references
└── deploy/ # Deployment and packaging
Specialized AGENTS.md files for detailed context:
- cpp/AGENTS.md - C++ implementation details and patterns
- cpp/daal/AGENTS.md - Traditional DAAL interface context
- cpp/oneapi/AGENTS.md - Modern oneAPI interface context
- dev/AGENTS.md - Development tools and build system context
- dev/bazel/AGENTS.md - Bazel build system specifics
- docs/AGENTS.md - Documentation structure and guidelines
- examples/AGENTS.md - Example code patterns and usage
- deploy/AGENTS.md - Deployment and distribution context
- ci/AGENTS.md - CI/CD infrastructure context
- ClangFormat: Use project's
.clang-formatconfiguration - EditorConfig: Follow
.editorconfigrules - Modern C++: Use C++14/17 features appropriately
- STL: Leverage standard library containers and algorithms
- RAII: Follow Resource Acquisition Is Initialization principles
- Interface Design: Follow existing DAAL/oneAPI patterns
- Memory Management: Use smart pointers and RAII
- Threading: Use oneDAL threading layer, not direct primitives
- CPU Features: Implement CPU feature dispatching for optimizations
- Build Tests: All changes must pass build system validation
- Examples: Ensure examples build and run correctly
- Documentation: Update relevant documentation
- Understand Context: Read relevant AGENTS.md file for your task
- Follow Patterns: Study existing code in similar areas
- Respect Standards: Apply coding guidelines consistently
- Test Thoroughly: Ensure changes work with build system
- scikit-learn-intelex integration impact
- API compatibility preservation
- Performance consistency maintenance
- CONTRIBUTING.md - Contribution guidelines
- INSTALL.md - Build and installation instructions
- MODULE.bazel - Bazel module configuration
- .clang-format - Code formatting rules
- API Documentation: oneDAL Developer Guide
- Coding Guidelines: Detailed coding guide
- CPU Features: CPU feature dispatching guide
- Threading: Threading layer guide
Note: This file serves as the main entry point. For specific implementation details, refer to the relevant sub-AGENTS.md file in the appropriate directory.