AVX2流媒体商店不会提高性能

时间:2018-03-05 20:28:17

标签: vectorization avx2

我有一些工作负载的AVX2实现。

我已经确定绝大部分执行时间都被占用了 通过内存加载和存储。

为了提高性能,我试图改变传统商店 流媒体(非时间)商店。

但是,这种变化几乎没有产生积极的性能影响(我预计会有相当大的性能提升)。

这可能是什么原因?

1 个答案:

答案 0 :(得分:1)

在某些情况下,使用流媒体商店可以带来更好的表现:

  1. 要存储的数据""在写入之前未读取:流式存储是直写式的,它会立即产生总线流量。标准存储使用写回策略,可以将总线操作延迟到以后的时间,并避免对多个写入同一高速缓存行的总线操作。
  2. 商店使用的时间小于计算时间:必须先完成流媒体商店才能发布下一个流媒体商店。因此,在两个流存储器之间进行太小的计算导致处理器的一些空闲时间,其中不能执行进一步的计算。标准商店也可能出现这个问题,流媒体商店甚至可以增加它。
  3. 要存储的数据""编写后不久就不需要:流式存储在写入/存储时超过了缓存。因此,缓存中没有数据的副本。在向后读取数据时,必须将数据加载到高速缓存中。因此,您对标准商店没有任何好处。但是,在使用标准存储时,数据会加载到缓存中,在那里进行修改,并且可能在以后访问时仍然存在。
  4. 所以你必须考虑你的代码和问题,在这些情况下要知道流媒体商店是否值得一试。在不合适的情况下,您的表现甚至会下降。

    可以找到包含其他信息和基准的博客条目,例如here