C++11 原子操作的成本在不同的体系结构中如何变化?
在普通体系结构(x86(版本)、arm(版本)和PowerPC(版本))上,原子操作的成本比较如何 如果您包括对周期的来源估计,并根据C11内存顺序进行解释,或包括架构上使用的指令,则会获得额外的分数C++11 原子操作的成本在不同的体系结构中如何变化?,c++11,atomic,cpu-architecture,c11,compare-and-swap,C++11,Atomic,Cpu Architecture,C11,Compare And Swap,在普通体系结构(x86(版本)、arm(版本)和PowerPC(版本))上,原子操作的成本比较如何 如果您包括对周期的来源估计,并根据C11内存顺序进行解释,或包括架构上使用的指令,则会获得额外的分数 如果您可以包括诸如RISC-V或Mill architecture之类的不常见/建议的体系结构,则可获得额外的加分。我知道我的要求很高,即使您只能回答体系结构的一个子集,请回答。对我来说,这看起来像是家庭作业,很抱歉,我们不能为您完成家庭作业。x86还应该有“(版本)”,这两者之间存在巨大差异,例
如果您可以包括诸如RISC-V或Mill architecture之类的不常见/建议的体系结构,则可获得额外的加分。我知道我的要求很高,即使您只能回答体系结构的一个子集,请回答。对我来说,这看起来像是家庭作业,很抱歉,我们不能为您完成家庭作业。x86还应该有“(版本)”,这两者之间存在巨大差异,例如,锁定指令(不是唯一的原子指令)在推土机上的速度大约是Ryzen上的两倍。@IsuruH我真的不认为这看起来像家庭作业。这个问题相对来说比较具体(至少到目前为止,我没有遇到过像这样的关于学校或大学中特定架构的问题)。他询问不常见的体系结构这一事实是另一个迹象,表明这个问题与解决这个家庭作业无关。如果你因为这个问题否决了这个问题,请考虑取消投票。在每个架构中,它取决于争用而不争用。对于自然对齐的共享变量,无争用情况甚至不必脱离核心。但对于争用情况,在双插槽多核Xeon上从另一个插槽获取缓存线可能比在单插槽四核桌面上慢得多。或者,如果线程运行在同一物理核心的不同逻辑核心上(SMT/hyperreading),则可能会降低开销。但是请参见x86原子存储->原子加载,而不是类似于RMW的
lock inc
。