memory-bandwidth相关内容

什么特别将 x86 缓存行标记为脏 - 任何写入,或者是否需要显式更改?

这个问题专门针对现代 x86-64 缓存一致性架构 - 我很欣赏其他 CPU 上的答案可能会有所不同. 如果我写入内存,MESI 协议要求先将缓存行读入缓存,然后在缓存中修改(将值写入缓存行,然后将其标记为脏).在较旧的 write-though 微架构中,这将触发缓存线被刷新,在回写下,被刷新的缓存线可能会延迟一段时间,并且在两种机制下都可能发生一些写组合(更可能是写回).而且我知道这如何 ..
发布时间:2022-01-06 13:02:43 其他开发

英特尔性能监视器计数器可用于测量内存带宽吗?

英特尔 PMU 能否用于测量每核读/写内存带宽使用情况?这里的“内存"指的是 DRAM(即,不命中任何缓存级别). 解决方案 是的,这是可能的,尽管它不一定像编写普通 PMU 计数器那样简单. 一种方法是使用通过 PCI 空间访问的可编程内存控制器计数器.一个好的起点是在 pcm-memory 中的实现rel="noreferrer">pcm-memory.cpp.此应用程序向您显示 ..
发布时间:2021-06-15 19:30:27 其他开发

每个周期的加载/存储,适用于最新的CPU体系结构

受此答案的启发 沙桥每个周期的FLOPS并具有SSE2/AVX/AVX2 对于Sandy/Ivy Bridge,Broad/Haswell,Sky/Kaby Lake,可以在一个核心上发布的正义装载/装载和存储的数量是多少?同样有趣的是AMD Bulldozer,Jaguar和Zen的数量. PS-我知道由于缓存/内存带宽的原因,这可能不是可持续的速度,我只是在问问题. 解 ..
发布时间:2021-04-24 21:03:48 其他开发

是什么专门将x86高速缓存行标记为脏-进行任何写操作,还是需要进行显式更改?

这个问题专门针对,是针对现代x86-64高速缓存一致性体系结构的,我很高兴在其他CPU上得出不同的答案。 如果我写入内存,则MESI协议要求先将高速缓存行读入高速缓存,然后在高速缓存中进行修改(将值写入高速缓存行,然后将其标记为脏)。在较旧的可写微体系结构中,这将触发缓存行被刷新,在回写情况下,被刷新的缓存行可能会延迟一段时间,并且在两种机制下都可能发生某些写合并(更可能发生回写) 。而且我 ..
发布时间:2020-10-11 00:00:10 其他开发

如何增加的memcpy的性能

摘要: 的memcpy似乎无法在真实或测试应用程序传输超过2GB /秒我的系统上。我能做些什么,以获得更快的内存到内存拷贝? 全部细节: 作为一个数据采集应用程序(使用一些专门的硬件)的一部分,我需要大约3 GB /秒,从临时缓冲区拷贝到主存储器。采集数据,我公司提供的硬件驱动程序与一系列的缓冲区(每个2MB)。硬件的DMA数据到每个缓冲器,然后通知我的程序时,每个缓冲区已满。我的程序清空缓 ..
发布时间:2016-08-17 23:03:58 C/C++