如何衡量访问共享远程缓存所花费的周期,例如L3。我需要在系统范围内和每个线程中获取此缓存访问信息。是否有任何特定的工具/硬件要求。或者我可以使用任何公式来获得在一个时间间隔内花费的周期的近似值
答案 0 :(得分:3)
要使平均延迟(当单个线程运行时)到您计算机上的各种缓存,您可以使用内存分析器工具,例如RMMA for windows(http://cpu.rightmark.org/products/rmma.shtml)和Lmbench for linux。
您还可以根据这些工具使用的想法编写自己的基准。 查看此StackOverflow问题上发布的答案: measuring latencies of memory 或Google了解Lmbench基准测试的工作原理。
如果要查找特定内存访问模式的确切延迟,则需要使用模拟器。这样,您可以在内存系统中跟踪内存访问。但是,模拟器不会模拟现代处理器或内存系统中存在的所有效果。
如果你想了解多个线程如何影响L3的平均延迟,我认为最好的办法是编写自己的基准测试。