| 12345678910111213141516171819202122232425262728293031 | % 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}%>>>
 |