首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >英特尔的光学持久记忆中的“`clwb`”和“`ntstore`”的延迟是什么?

英特尔的光学持久记忆中的“`clwb`”和“`ntstore`”的延迟是什么?
EN

Stack Overflow用户
提问于 2021-03-29 09:28:47
回答 1查看 444关注 0票数 1

在本文中中,光脉冲的clwbntstore的8字节顺序写入分别有90 is和62 is的延迟,顺序读取为169 is。

但在我用Intel 5218 about进行的测试中,clwb约为700 is,ntstore约为1200 is。当然,我的测试方法和论文是有区别的,但是结果太糟糕了,这是不合理的。我的测试更接近实际使用。

在测试过程中,CPU的iMC或WC缓冲区的写入待定队列是否成为瓶颈,导致阻塞,所测量的延迟是不准确的?如果是这样的话,是否有检测它的工具?

代码语言:javascript
复制
#include "libpmem.h"
#include "stdio.h"
#include "x86intrin.h"

//gcc aep_test.c -o aep_test -O3 -mclwb -lpmem

int main()
{
    size_t mapped_len;
    char str[32];
    int is_pmem;
    sprintf(str, "/mnt/pmem/pmmap_file_1");
    int64_t *p = pmem_map_file(str, 4096 * 1024 * 128, PMEM_FILE_CREATE, 0666, &mapped_len, &is_pmem);
    if (p == NULL)
    {
        printf("map file fail!");
        exit(1);
    }
    if (!is_pmem)
    {
        printf("map file fail!");
        exit(1);
    }

    struct timeval start;
    struct timeval end;
    unsigned long diff;
    int loop_num = 10000;

    _mm_mfence();
    gettimeofday(&start, NULL);

    for (int i = 0; i < loop_num; i++)
    {
        p[i] = 0x2222;
        _mm_clwb(p + i);
        // _mm_stream_si64(p + i, 0x2222);
        _mm_sfence();
    }

    gettimeofday(&end, NULL);

    diff = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;

    printf("Total time is %ld us\n", diff);
    printf("Latency is %ld ns\n", diff * 1000 / loop_num);

    return 0;
}

任何帮助或纠正都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-08 08:38:21

  1. 主要原因是重复刷新到相同的背线是延迟的dramatically1。
  2. 您正在测试avg延迟,而不是像FAST20 papaer那样的最佳延迟。
  3. ntstore比clwb更昂贵,因此它的延迟更高。我想这是你第一段的错误。

附于4.14

问:用来检测缓冲区WPQ上可能的瓶颈的工具?

答:当PM处于空闲状态时,您可以获得一个基线,并使用这个基线来指示可能的瓶颈。

工具:

  1. 英特尔内存带宽监控
  2. 从处理器中的性能监视单元(PMU)读取两个硬件计数器: 1) UNC_M_PMM_WPQ_OCCUPANCY.ALL,计算每个周期WPQ条目的累积数;2) UNC_M_PMM_WPQ_INSERTS,计算已插入WPQ的条目数。并计算了WPQ: UNC_M_PMM_WPQ_OCCUPANCY.ALL / UNC_M_PMM_WPQ_INSERTS的排队时延。2

1 Chen,Youmin,等。Flatstore:用于持久内存的高效日志结构密钥-值存储引擎。第二十五届编程语言和操作系统建筑支持国际会议记录。2020年。

2井村、佐石和吉田惠二。混合存储系统中进程间干扰的分析。亚洲-太平洋区域高性能计算国际会议记录讲习班。2020年。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66851732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档