AVX512 集中是否有原子 CAS 指令或等效指令?
我不能立即找到一个,但没有最好的谷歌 fu。
除了lock cmpxchg16b
(16 字节)之外,x86 没有任何超过 8 字节的保证原子操作。对齐向量加载/存储在当前 CPU 上是元素原子的(即在 8 字节元素内没有撕裂),尽管尚不清楚文档是否保证.
您是否希望有一个 64 字节的全高速缓存行 CAS?没有单一的指示。
单独的 AVX512 无法提供这些,但使用TSX(事务性内存),您可以自行开发。将加载+比较+存储放在事务中。IDK与 相比有多贵xbegin
/ 。xend
lock cmpxchg
您也不需要 AVX512;整个事务以原子方式提交或根本不提交,因此您可以使用一对 AVX2 加载/比较指令来实现 64 字节 CAS。