% vim: set foldmethod=marker foldmarker=<<<,>>>: \section{Memory/bandwidth optimization} \begin{frame} \frametitle{Memory benchmarks}{} %<<< % https://lwn.net/Articles/252125/ % Ulrich Drepper -- What every programmer should know about memory % plot: X (size), Y (cycles) ---- vary stride length % spatial and temporal data locality % hyper threading - shared cache - useful for latency bound \end{frame} %>>> % vector vs linked list \begin{frame} \frametitle{Shared memory pitfalls}{} %<<< % thread contention % cache coherency % thread pinning % NUMA % locks / atomic / synchronization \end{frame} %>>>