~/talk

High-Performance Message Dispatch in C++

Talkat emBO++ 2023 · 2023-03-23..03-25· [embedded-and-hardware, c-and-cpp]
slides:none on file

A compile-time C++ dispatch replaces linear predicate scans with generated lookup indices and set intersections, yielding 100–200 ns latency on a 400 MHz ARC HS4x dev board and never exceeding 145 ns in benchmarks up to 155 callbacks. The system uses the Intel CIB framework, O3 builds, multiple lookup strategies (linear, direct-array, hash, frozen/perfect-hash experiments via hash prospector), represents matches as bitmask intersections, and invokes callbacks directly; code and a pull request live on the Intel CIB GitHub.

AI-written summary · about

  1. 0:00Introduction and speaker background
  2. 1:09What is message dispatch
  3. 2:34Real-time processing challenges
  4. 3:37Firmware composability principles
  5. 5:51CIB Library overview
  6. 7:13Message definition and callbacks
  7. 8:58Components and composition
  8. 10:01Independent performance goals
  9. 11:25Benchmarking old vs new algorithms
  10. 13:11Database-inspired lookup indices
  11. 14:17Example motor control system
  12. 16:23Lookup algorithm strategies
  13. 19:14Linear search performance
  14. 20:40Direct array lookup benefits
  15. 21:20Hash lookup efficiency
  16. 22:48Composite lookup strategy
  17. 24:59Set intersection with bitmasks
  18. 26:04Executing matching callbacks
  19. 27:08Declarative interface benefits
  20. 28:13Open source and future work
  21. 29:17Q&A: Callback priorities
  22. 31:41Q&A: Cache impact and use cases
  23. 34:30Q&A: Compile time impact
  24. 36:39Q&A: Perfect hash functions
  25. 38:45Q&A: Optimizing lookup columns
  26. 40:37Closing remarks and thanks
~/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.