質問
Xeon PHIでは、ロックフリーアルゴリズムでtbb
compare_and_swap
動作を使用しています。Xeon PhiはOrder Machineであるため、sfence
操作はサポートされていません。それで、原子力はXeon Phi?
解決
はい、彼らは間違いなく正しく機能し、ほとんどのTBB自体はアトミック操作に基づいています。原子間の操作が正しく機能するのには、sfence
が必要ではなく、原子動作はメモリバリア自体を暗示しています。TBBは通常のXeonsでもsfence
を使用しません。Xeon Phiの場合、それはNO OP原子操作で置換されています。TBBのMIC_COMMON.Hには、次の定義が含まれています。
/** Intel(R) Many Integrated Core Architecture does not support mfence and pause instructions **/
#define __TBB_full_memory_fence() __asm__ __volatile__("lock; addl $0,(%%rsp)":::"memory")
#define __TBB_Pause(x) _mm_delay_32(16*(x))
. 所属していません StackOverflow