我的大多数工作都针对一组我们可以控制的相当狭窄的硬件(特别是Intel CPU的最后几个版本),并且它保留在内部,因此我们没有架构兼容性约束或问题,并且代码需要接近金属,合理优化往往不是超长寿命(几个月到几年的顶部)。
我想知道以下内容:在管理数据时是否存在任何非人为和人为的案例,因此始终高速缓存行对齐实际上是反效果的?至少在最近的Intel CPU上。 更具体地说,如果有的话,是否适用于SIMD友好,许多POD案例?
至于为什么这个问题: 我开发的习惯之一总是在计算和控制数据方面是正常的,特别是在我们有许多小型POD对象的情况下,因此它的高速缓存行对齐并且理想情况下根据需要很容易切换到SoA / AoS。这是基于它不会受到伤害的假设。我想知道这个假设是否实际上是一个相当健康的假设;我想不出任何可能适得其反的情况。