18.4.3. Best Practices - 5.2 English - 57404

AOCL User Guide (57404)

Document ID
57404
Release Date
2025-12-29
Version
5.2 English

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_destroy in 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