Feature Selection:
Compile with all features by default for development
Use selective features for production deployment if size matters
Test thoroughly after disabling features
Document which features your application requires
CPU Detection:
Call CPU detection once at application startup (low overhead)
Cache detection results for runtime queries
Link against libaoclutils for CPU detection capabilities
Thread Pinning:
Pin threads after thread pool creation, before heavy computation
Use SPREAD strategy for multi-socket NUMA systems
Use CORE strategy for single-socket compute-intensive workloads
Avoid over-pinning (more threads than physical cores)
Test different strategies for your specific workload
Combine with NUMA-aware memory allocation for best results
Logger Usage:
Create logger once at startup
Use appropriate log levels (TRACE/DEBUG for development, INFO/WARN for production)
Flush before application exit
Clean up logger resources (
au_logger_destroyin C)
Integration:
Use same compiler for AOCL-Utils and your application
Start with dynamic linking for faster development
Use libaoclutils (combined library) unless you have specific size constraints
Test on target AMD Zen hardware for accurate CPU detection