Releases: RealTimeChris/benchmarksuite
Release v1.0.1
BenchmarkSuite v1.0.0 Release Notes
Overview
This is a major release representing a complete restructuring of BenchmarkSuite with breaking changes to directory structure, naming conventions, and APIs. The library has been modernized with snake_case conventions throughout and new hardware introspection capabilities.
🚨 Breaking Changes
Directory Structure
- Old:
Include/BnchSwt/ - New:
include/bnch_swt/ - All header includes must be updated to use lowercase directory paths
File Naming Convention
All header files renamed from PascalCase to snake_case:
Concepts.hpp→concepts.hppConfig.hpp→config.hppStringLiteral.hpp→string_literal.hppFileLoader.hpp→file_loader.hppPrintable.hpp→printable.hppDoNotOptimize.hpp→do_not_optimize.hppEventCounter.hpp→event_counter.hppMetrics.hpp→metrics.hppRandomGenerators.hpp→random_generators.hpp- And all counter headers in
counters/subdirectory
API Changes
Type Aliases:
uint64_type→size_type(throughout string_literal and container concepts)
Function Names (snake_case convention):
stringLiteralFromView()→string_literal_from_view()countDigits()→count_digits()toStringLiteral()→to_string_literal()toLower()→to_lower()
Template Parameters:
sizeVal→size_valsizeNew→size_newnumDigits→num_digitsmetricNameNew→metric_name_newstageNameNew→stage_name_new
Variable Names:
returnValues→return_valuesuseNonMbpsMetric→use_non_mbps_metric
Removed Files
The old PascalCase versions of all headers have been removed. The following were part of the old structure:
Include/BnchSwt/CacheClearer.hpp(functionality moved/renamed)Include/BnchSwt/Counters/CudaEvents.hpp(replaced with cuda_perf_events.hpp)Include/BnchSwt/DoNotOptimize.hppInclude/BnchSwt/EventCounter.hppInclude/BnchSwt/Metrics.hppInclude/BnchSwt/RandomGenerators.hppinclude/BnchSwt/Index.hpp
✨ New Features
Hardware Introspection
benchmarksuite_cpu_properties.hpp: New comprehensive CPU hardware detection and properties APIbenchmarksuite_gpu_properties.hpp: New GPU hardware detection and properties API for CUDA devices
Memory Alignment
aligned_const.hpp: New utilities for compile-time aligned constant data structures
CUDA Performance Counters
counters/cuda_perf_events.hpp: New CUDA-specific performance event counters replacing the old CudaEvents.hpp with enhanced functionality
Cache Management
cache_clearer.hpp: Rebuilt cache clearing functionality with improved cross-platform support (previously CacheClearer.hpp)
🔧 Improvements
Code Quality
- Explicit Alignment: Updated from
BNCH_SWT_ALIGNtoBNCH_SWT_ALIGN(64)for explicit 64-byte cache line alignment - Standard Compliance: Changed
floating_point_tconcept fromstd::numeric_limits<>::is_iec559tostd::floating_point<>for better C++20 compliance - Consistent Naming: All internal variables, functions, and template parameters now follow snake_case convention
Type Safety
- Replaced generic
uint64_typewith semanticsize_typefor container operations - Improved concept definitions for better type checking at compile time
📦 Package Changes
vcpkg Integration
- Package renamed:
benchmarksuite→rtc-benchmarksuite - Updated port location:
vcpkg/ports/benchmarksuite/→vcpkg/ports/rtc-benchmarksuite/ - Updated git-tree hash for version 1.0.0
- Port name in vcpkg.json updated to
rtc-benchmarksuite
Repository
- GitHub URL casing updated:
BenchmarkSuite→benchmarksuite
🗑️ Infrastructure Changes
- Removed: GitHub Actions benchmark workflow (
Benchmark.yml)- The automated CI benchmark workflow has been deprecated in favor of local benchmarking infrastructure
- Provides more flexible hardware access and precise performance measurement capabilities
📊 Migration Guide
Update Include Paths
// Old
#include <BnchSwt/Concepts.hpp>
#include <BnchSwt/StringLiteral.hpp>
#include <BnchSwt/Counters/LinuxPerfEvents.hpp>
// New
#include <bnch_swt/concepts.hpp>
#include <bnch_swt/string_literal.hpp>
#include <bnch_swt/counters/linux_perf_events.hpp>Update Type Aliases
// Old
using uint64_type = uint64_t;
string_literal<N>::uint64_type index;
// New
using size_type = uint64_t;
string_literal<N>::size_type index;Update Function Calls
// Old
auto str = toStringLiteral<42>();
auto lower = toLower('A');
auto count = countDigits(12345);
// New
auto str = to_string_literal<42>();
auto lower = to_lower('A');
auto count = count_digits(12345);Update Template Parameters
// Old
template<uint64_t sizeVal>
class string_literal { ... };
// New
template<uint64_t size_val>
class string_literal { ... };Update vcpkg Dependency
// Old vcpkg.json
{
"dependencies": ["benchmarksuite"]
}
// New vcpkg.json
{
"dependencies": ["rtc-benchmarksuite"]
}📈 Statistics
- Total files changed: 25
- Files deleted: 7 (old structure)
- Files created: 10 (new functionality + restructured)
- Files renamed: 9 (structural reorganization)
⚠️ Compatibility Notes
This release introduces breaking changes that require code modifications:
- All include paths must be updated to lowercase
- All API function calls must use snake_case naming
- Template parameter names have changed
- Type aliases have been renamed for semantic clarity
- vcpkg package name has changed
Recommendation: Review all usages of BenchmarkSuite in your codebase and update according to the migration guide above.
🙏 Acknowledgments
This major restructuring modernizes BenchmarkSuite to align with contemporary C++ conventions while maintaining and extending its powerful performance measurement capabilities.
Release v1.0.0
First official release of benchmarksuite.