很多时候查不到本机cpu的cache信息。而了解这些信息,对于调优很有帮助
查看1级缓存cache大小
cat /sys/devices/system/cpu/cpu0/cache/index1/size
查看能访问这个1级缓存的cpu编号
cat /sys/devices/system/cpu/cpu0/cache/index1/shared_cpu_list
查看1级缓存cache line的大小
cat /sys/devices/system/cpu/cpu0/cache/index1/coherency_line_size
查看1级缓存cache set的数目
cat /sys/devices/system/cpu/cpu0/cache/index1/number_of_sets
查看2级缓存大小
cat /sys/devices/system/cpu/cpu0/cache/index2/size
查看其他级别的缓存可以更改index后的数字
cache_size = number_of_sets * cache_line_size * line_per_set
会导致cache miss率提高的vector size
criticalStride = number_of_sets * cache_line_size
参考:
http://stackoverflow.com/questions/11413855/why-is-transposing-a-matrix-of-512x512-much-slower-than-transposing-a-matrix-of
http://www.7-cpu.com/cpu/SandyBridge.html
http://www.7-cpu.com/cpu/Westmere.html