Ali*_*Ali 1 c c++ parallel-processing caching openmp
据我所知,当两个cpu内核访问单个内存块的不同部分时,会发生错误共享.在这种情况下,每个核心中的L1缓存包含不同的值.
虚假分享的影响是什么?商用CPU总能检测到错误共享吗?它会导致像竞争条件(在内存中持久存在不同的缓存版本)吗?
当一个核心修改某些数据时会发生虚假共享,另一个核心会读取恰好位于同一个缓存行中的某些不相关的数据.修改强制第二个核心重新加载整个缓存行,即使它使用的数据没有改变.
这不会导致任何不正确的行为,除非缓存被严重破坏.但它可能会产生很大的性能影响,因为缓存的数据是从更高级别的缓存中不必要地获取的.
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |