Optimizing Software for Modern CPUs and Linux
summary
Covers practical techniques for optimizing software on modern CPUs and Linux, including data alignment, cache optimization and NUMA-aware design, CPU/thread and interrupt binding, lock-free data structures using atomic operations and memory barriers, and use of vector instructions and cache-conscious/oblivious data structures; also discusses transactional memory (Intel TSX).
AI-written summary · about
chapters (16)
- 0:00Introduction to optimization
- 1:12Modern CPUs and memory
- 4:09Processes and threads
- 8:10Context switches
- 10:17Synchronization primitives
- 13:00Cache migration problem
- 18:27Spin-lock issues
- 23:10Lock optimization
- 25:44Intel TSX and transactions
- 28:35Cache levels
- 31:27Context switches and cache
- 33:16False sharing problem
- 35:26Data structures and cache
- 37:13Array processing
- 38:37OS and memory allocation
- 41:07Thread pinning to cores
related talks
45mEfficient Use of Modern x86-Compatible CPUs
21mPreview: Operating Systems
51mLinux Systems Performance - Architecture
48mPerformance and Cost: How Hardware Influences Our Programs
54mGCC/Clang Optimizations for Embedded Linux
01h 11mPerformance engineering - being friendly to your hardware
20mKeynote: MDS, Fallout, Zombieland & Linux
47mLinux on POWER Driver Porting, Optimization, and Test
