I’m interested in offering a technical session focusing on CPU caches and why they are important for people interested in developing performance-sensitive software. My idea is to talk about things like the following:
- Instruction caches vs. data caches vs. TLBs
- Cache lines, cache line prefetching, and false sharing
- Cache hierarchies
- Shared and unshared caches
- Interactions among caches, multithreading, hyperthreading, and speculative execution.
- Interactions among C++ language features and instruction caches (e.g., macros, inlining, templates)
- Cache-friendly algorithms and data structures
Please use the comment feature of this blog to discuss your thoughts on this prospective session topic.