Aligning to cache line and knowing the cache line size

前端 未结 7 1741
盖世英雄少女心
盖世英雄少女心 2020-12-12 10:07

To prevent false sharing, I want to align each element of an array to a cache line. So first I need to know the size of a cache line, so I assign each element that amount of

7条回答
  •  [愿得一人]
    2020-12-12 10:51

    I am using Linux and 8-core x86 platform. First how do I find the cache line size.

    $ getconf LEVEL1_DCACHE_LINESIZE
    64
    

    Pass the value as a macro definition to the compiler.

    $ gcc -DLEVEL1_DCACHE_LINESIZE=`getconf LEVEL1_DCACHE_LINESIZE` ...
    

    At run-time sysconf(_SC_LEVEL1_DCACHE_LINESIZE) can be used to get L1 cache size.

提交回复
热议问题