Overview
Explore algorithmic and microarchitecture optimizations for C++ applications in this 35-minute conference talk. Dive into the process and patterns of performance optimization, covering topics such as optimization criteria, workload selection, and data flow analysis. Learn about algorithmic and design optimizations, vectorization techniques, parallel execution strategies, and microarchitecture efficiency. Gain insights on identifying top hotspots, utilizing Threading Building Blocks, and implementing effective parallelization. Discover useful resources and practical tips to maximize the performance of your C++ code.
Syllabus
Intro
Optimization criteria and stopping condition
Optimization Process
What makes a good workload
Sample application data flow
Algorithmic optimization
Design optimization
Top hotspots Top Hotspots
Vectorization boundaries
Vectorization report
Performance gain
Parallel execution speedup
Threading Building Blocks
Bold attempt to parallelize baseline
uArch optimizations
Microarchitecture efficiency
Dig deeper?
Summary
Useful links
Taught by
NDC Conferences