Skip to content

Commit bc60359

Browse files
authored
refactor configuration and tests: replace BuildConfig with OpenVINOConfig (#26)
* refactor configuration and tests: replace `BuildConfig` with `OpenVINOConfig` for enhanced flexibility and support of multiple OpenVINO distribution modes (build, install, link); update schema validations, experiment YAML, and add dedicated tests * add OpenVINO distribution modes: introduce support for build, install, and link modes; update documentation, migration guides, and configuration schema; enhance flexibility for runtime setup * update architecture documentation: replace outdated diagrams with mermaid-based visualizations for improved clarity; expand descriptions of pipeline stages, device abstraction, and component workflows
1 parent e5532fa commit bc60359

19 files changed

Lines changed: 2061 additions & 471 deletions

CHANGELOG.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Changelog
2+
3+
All notable changes to OVMobileBench will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
12+
- Three flexible OpenVINO distribution modes:
13+
- **Build mode**: Build OpenVINO from source with custom configurations
14+
- **Install mode**: Use existing OpenVINO installation directory
15+
- **Link mode**: Download OpenVINO archives with "latest" auto-detection support
16+
- Automatic platform detection for downloading appropriate OpenVINO builds
17+
- Comprehensive test coverage for new OpenVINO modes
18+
- New documentation: `docs/openvino-modes.md` with detailed usage examples
19+
- Support for `archive_url: "latest"` to automatically fetch the latest OpenVINO build
20+
21+
### Changed
22+
23+
- Configuration schema: `build` section renamed to `openvino` with new `mode` field
24+
- Updated example YAML files to demonstrate all three OpenVINO modes
25+
- Improved configuration documentation with mode-specific examples
26+
- Enhanced pipeline to handle OpenVINO distribution flexibly
27+
28+
### Fixed
29+
30+
- Unified YAML comment formatting across example configurations
31+
- Pre-commit hook compliance for all new code
32+
33+
### Migration Guide
34+
35+
To migrate from the old configuration format:
36+
37+
**Old format:**
38+
39+
```yaml
40+
build:
41+
enabled: true
42+
openvino_repo: "/path/to/openvino"
43+
openvino_commit: "HEAD"
44+
```
45+
46+
**New format:**
47+
48+
```yaml
49+
openvino:
50+
mode: "build"
51+
source_dir: "/path/to/openvino"
52+
commit: "HEAD"
53+
```
54+
55+
## [0.2.0] - 2024-12-15
56+
57+
### Added
58+
59+
- Android SDK/NDK installer module for automated setup
60+
- SSH device support for Linux ARM devices
61+
- Temperature monitoring and performance tuning
62+
- GitHub Actions CI/CD integration
63+
- Comprehensive documentation
64+
65+
### Changed
66+
67+
- Improved device abstraction layer
68+
- Enhanced error handling and reporting
69+
- Updated dependencies to latest versions
70+
71+
### Fixed
72+
73+
- ADB connection stability issues
74+
- Memory leaks in long-running benchmarks
75+
- Report generation for large datasets
76+
77+
## [0.1.0] - 2024-11-01
78+
79+
### Added
80+
81+
- Initial release of OVMobileBench
82+
- Basic pipeline for building, packaging, deploying, and benchmarking
83+
- Support for Android devices via ADB
84+
- JSON and CSV report generation
85+
- Matrix testing capabilities
86+
- Basic documentation and examples
87+
88+
[Unreleased]: https://github.com/embedded-dev-research/OVMobileBench/compare/v0.2.0...HEAD
89+
[0.2.0]: https://github.com/embedded-dev-research/OVMobileBench/compare/v0.1.0...v0.2.0
90+
[0.1.0]: https://github.com/embedded-dev-research/OVMobileBench/releases/tag/v0.1.0

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,20 @@ ovmobilebench all -c experiments/android_example.yaml
2424
cat experiments/results/*.csv
2525
```
2626

27+
### OpenVINO Distribution Modes
28+
29+
OVMobileBench supports three flexible ways to obtain OpenVINO:
30+
31+
1. **Build Mode** - Build OpenVINO from source
32+
2. **Install Mode** - Use pre-built OpenVINO installation
33+
3. **Link Mode** - Download OpenVINO archive (supports "latest" for auto-detection)
34+
35+
See [Configuration Reference](docs/configuration.md) for details.
36+
2737
## 📚 Documentation
2838

2939
- **[Getting Started Guide](docs/getting-started.md)** - Installation and first benchmark
40+
- **[OpenVINO Modes Guide](docs/openvino-modes.md)** - Three ways to obtain OpenVINO runtime
3041
- **[User Guide](docs/user-guide.md)** - Complete usage documentation
3142
- **[Configuration Reference](docs/configuration.md)** - YAML configuration schema
3243
- **[Device Setup](docs/device-setup.md)** - Android/Linux device preparation
@@ -39,7 +50,7 @@ cat experiments/results/*.csv
3950

4051
## ✨ Key Features
4152

42-
- 🔨 **Automated Build** - Cross-compile OpenVINO for Android/Linux ARM
53+
- 🔨 **Flexible OpenVINO Distribution** - Three modes: build from source, use existing install, or download archives
4354
- 📦 **Smart Packaging** - Bundle runtime, libraries, and models
4455
- 🚀 **Multi-Device** - Deploy via ADB (Android) or SSH (Linux using paramiko)
4556
-**Matrix Testing** - Test multiple configurations automatically
@@ -48,6 +59,7 @@ cat experiments/results/*.csv
4859
- 🔄 **CI/CD Ready** - GitHub Actions integration included
4960
- 📈 **Reproducible** - Full provenance tracking of builds and runs
5061
- 🤖 **Android SDK/NDK Installer** - Automated setup of Android development tools
62+
- 🔗 **Auto-Download** - Fetch latest OpenVINO builds for your platform
5163

5264
## 🔧 Supported Platforms
5365

0 commit comments

Comments
 (0)