~/talk

Cache friendly data + functional + ranges = ❤️

Talkat NDC TechTown 2024 · 2024-09-09..09-12· [c-and-cpp]
slides:none on file

Shows a compact C++23 library (built with clang 18 and measured with perf) that replaces a vector-of-structs with structs of vectors and a templated table API. Measured numbers: vector-of-structs ~2.6s with ~2.5B cache refs, manual struct-of-vectors ~2.2s with 641M refs, templated table ~1.6s. Adds a stable row ID index (index + reverse index) that costs work on heavy removals, an iterator/ranges interface, column-subset selection and a select/apply higher-order helper. Code on GitHub; prototype works and often runs noticeably faster.

AI-written summary · about

  1. 0:00Introduction
  2. 1:24About the speaker and their work
  3. 3:08Data-oriented inspiration
  4. 4:10Cache-friendly layout
  5. 6:39Struct vs vector-of-structs
  6. 11:28Cache-friendly table
  7. 16:13Stable row IDs
  8. 23:26Index management challenges
  9. 25:48Iteration performance
  10. 27:31Row IDs and lookups
  11. 27:54Iterator design
  12. 31:53Iterators with ranges
  13. 34:19Row IDs from iterators
  14. 38:44Column selection
  15. 46:38Column selection impact
  16. 47:00Functions with columns
  17. 53:45Summary and demo
  18. 56:16Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.