在Xeon Phi中使用tbb原子操作

时间:2014-07-30 20:44:20

标签: tbb xeon-phi

我在Xeon Phi中使用无锁算法中的tbb compare_and_swap操作。由于Xeon Phi是一台订购机,它不支持sfence操作。那么原子操作在Xeon Phi上会正常工作吗?

1 个答案:

答案 0 :(得分:1)

是的,它们肯定能正常工作,TBB本身的大部分都是基于原子操作。并且sfence不是原子操作正常工作所必需的,它是一个独立的内存屏障,而原子操作本身意味着内存屏障。 TBB即使在常规Xeon上也不使用sfence,而是使用mfence代替完整的内存栅栏。对于Xeon Phi,它被无操作原子操作代替,例如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))