首页 文章

在Xeon Phi中使用tbb原子操作

提问于
浏览
0

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

1 回答

  • 1

    是的,它们肯定能正常工作,TBB本身的大部分都是基于原子操作 . 并且 sfence 不是原子操作正常工作所必需的,即使在常规Xeons上也使用 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))
    

相关问题