CPU缓存感知的C++/C编程

3

我正在听Scott Meyer的CPU缓存和为什么你在意的播客。这似乎可以使代码运行更快,是否有任何开源项目可以供参考。或者有人有基于CPU缓存感知的数据结构/算法设计示例吗?


2
相关:http://en.wikipedia.org/wiki/Cache-oblivious_algorithm - Alexandre C.
7
这个问题太过宽泛了。如何构建最优缓存数据结构取决于很多因素,例如访问模式、访问时间、元素大小等。没有一种通用的答案;这就是为什么播客只是讲解缓存内存的工作原理。没有“做这个就可以使你的代码更快”的万能方法。 - Nicol Bolas
1
如果不是以太过宽泛的方式表达,而是以“我刚读了一篇有趣的博客”为例,这个问题仍然是 https://dev59.com/KnRA5IYBdhLWcg3w9y50 的重复。 - Pascal Cuoq
通过查找“缓存未命中性能计数器”上的特定内容,我发现了另一个含糊且泛泛的问题。在StackOverflow上没有任何结果,因此您只能使用Google。但是如果您开始应用喜欢的视频中的思想,而没有先使用它们来测量现有算法的高速缓存效率,那么您将浪费时间。 - Pascal Cuoq
您会在https://dev59.com/4mw15IYBdhLWcg3wD3jp的答案中找到许多相关阅读材料。 - Szabolcs
2个回答

2
当然,整个Linux内核的实现都是具有缓存感知能力的。
如需更多细节,请参阅高度推荐的论文《每个程序员都应该了解的内存知识》(What Every Programmer Should Know About Memory)。链接:http://www.akkadia.org/drepper/cpumemory.pdf

1

线性代数对缓存问题非常敏感。BLAS子程序可以让我们抽象出这些问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接