Explore an in-depth overview of program optimization techniques in this ACCU 2017 conference talk by Mathias Gaunard. Delve into the world of C++ efficiency as the speaker introduces various methods to map algorithms to computer architecture with minimal overhead. Begin by understanding the intricacies of hardware architecture, including NUMA, multi-core processing, superscalar execution, instruction pipelining, specialized processing units, caching behavior, and branch prediction. Then, discover practical programming techniques such as asynchronous programming, strength reduction, tiling, loop unrolling and pipelining, branch elimination, vectorization, mixed precision, and specialized algorithms. Learn how C++ templates can help generalize and combine these optimization strategies. Examine benchmarks to assess the effectiveness of these techniques in real-world scenarios. Cover topics like x86 optimization, assembly, port types, auto order execution, SIMD, multithreading, complex switches, caches, compact objects, padding, inlining, ABI cost, metaprogramming, explicit load, unrolling, loop optimization, and register rotation.
Read more