cpu-cache

    14热度

    4回答

    如何以编程方式测量(不查询操作系统)L1和L2高速缓存(数据高速缓存)的关联大小和顺序? 假设有关系统: 它L1和L2高速缓冲存储器(可以是L3也可以是高速缓存共享), 它可以具有硬件预提取单元(就像P4 +), 它有一个稳定的clocksource(ticktime或gettimeofday的好HPET)。 对操作系统(可以是Linux,Windows或其他)没有任何假设,我们也不能使用POSI

    43热度

    3回答

    我有兴趣强制在Windows中刷新CPU缓存(出于基准测试的原因,我想仿效CPU缓存中没有数据开始),最好是基本的C实现或Win32调用。 有没有一种已知的方法可以通过系统调用来做到这一点,甚至可以像做一个大型的memcpy那样偷偷摸摸? 英特尔i686平台(P4和以上也可以)。

    3热度

    1回答

    我有一个飞思卡尔的i.MX515EVK,ARM Cortex-A8/Ubuntu平台,不幸的是板上的Linux内核不支持一些众所周知的分析器,例如Oprofiler或Zoom Profiler(Zoom支持ARM处理器,但是它在内部使用Oprofiler驱动程序),它们提供有关缓存利用率的非常详细的报告。 Cortex-A8具有32KB指令和数据高速缓存以及256KB二级高速缓存。目前,当我的图像

    0热度

    2回答

    我所知道的所有.NET分析器都没有考虑到CPU缓存的影响。 考虑到从CPU缓存中读取一个字段的速度可能比从主内存中读取字段快100倍,这可能是一个很大的因素。 (我只是在answer来解释这一点) 我见过太多的人花很长的计时器加快,一个探查说是缓慢的,在现实生活中的CPU缓存使得他们快时循环。 E.g我希望能够看到,如果一个数据访问缺少CPU缓存很多以及刚开基本的分析结果,我可以更信任。 在过去,

    6热度

    2回答

    我想在ARM Cortex A8处理器上移植一小段代码。 L1缓存和L2缓存都非常有限。我的程序中有3个数组。其中两个按顺序访问(大小>数组A:6MB和数组B:3MB),第三个数组(大小>数组C:3MB)的访问模式是不可预知的。尽管计算并不十分严格,但是对于访问数组C来说存在巨大的缓存未命中。我认为的一个解决方案是为数组C分配更多的缓存(L2)空间,但对于数组A而言则更少B.但是我不能找到任何方式

    13热度

    7回答

    写模拟时,我的好友说他喜欢尝试编写足够小的程序以适应缓存。这有什么真正的意义?我知道缓存比RAM和主内存更快。是否可以指定您希望程序从缓存运行或至少将变量加载到缓存中?我们正在编写模拟程序,因此任何性能/优化增益都是巨大的优势。 如果您知道任何解释CPU缓存的好链接,请指出该方向。

    2热度

    1回答

    我有一个用C++编写的应用程序,其他人已经以一种应该最大限度地利用cpu缓存的方式编写应用程序。此应用程序在使用半虚拟化的来宾Ubuntu操作系统上运行。我运行cachegrind并收到非常低的缓存缺失率。 由于我的操作系统是虚拟化的,我可以确定这些值实际上是正确的,表明cpu缓存已经很好地用于我的应用程序吗?

    28热度

    4回答

    我有几个关于在多核CPU或多处理器系统中使用的高速缓存存储器的问题。 (虽然不直接相关的节目,它有很多的反响,同时一个针对多核处理器/多处理器系统编写软件,因此要求在这里!) 在多处理器系统或多核处理器(英特尔四核处理器,内核两条Duo等)。每个CPU核心/处理器都有自己的缓存(数据和程序缓存)? 一个处理器/内核是否可以访问对方的缓存内存,因为如果他们被允许访问对方的缓存,那么我认为可能会有较少