X-Mem内存基准测试工具
X-Mem 是可扩展的内存基准测试工具,它可以用于研究内存结构吞吐量、延迟和功率。
特性
灵活性:易于重新配置,以适应不同的测试组合。
- 工作集以4KB的增量递增,从而可以缓存到主内存级别的基准测试。
- NUMA支持。
- 多线程支持。
- 大页面支持。
可扩展性:通过C ++ 11面向对象原理的模块化。
- 支持快速添加新的基准内核例程。
- 例如:流三合会算法,错误共享的影响等,可能需要进行很小的更改。
跨平台:目前已针对两个OS和体系结构系列实施。
- GNU / Linux:具有AVX扩展的Intel x86(32位),x86-64和x86-64,带有NEON的ARM(32位),ARM(32位),ARMv8(64位),至强融核(英特尔麦克风,骑士角)。经过Ubuntu 12.04、14.04和CentOS 7的专门测试。
- Windows:具有AVX扩展名的Intel x86(32位),x86-64和x86-64。经过Windows 8.1和Server 2012 R2专门测试。
- Windows上的ARM可以使用VC ++进行编译,但由于缺少对桌面/命令行ARM应用程序的库支持,因此无法链接。将来可能会解决。
- 旨在允许直接移植到其他操作系统和ISA。
内存吞吐量:
- 精确测量所有级别的缓存和内存的持续内存吞吐量。
- 常规访问方式:前进和后退顺序以及2、4、8和16个字的跨度。
- 随机访问模式。
- 读和写。
- 32、64、128、256、512位宽度的存储指令(适用于每种体系结构)。
内存延迟:
- 精确测量所有级别的缓存和内存的往返内存延迟。
- 通过使用多线程负载生成来加载和卸载延迟。
记忆能力:
- 通过最终用户可以实现的简单界面来支持自定义电源仪表。
- 可以通过Windows性能计数器API中公开的自定义驱动程序收集DRAM电源。
说明文件:
- 广泛的Doxygen源代码注释,PDF手册,HTML。
包含的扩展名(在 src/include/ext 和 src/ext 目录下):
- 加载延迟基准测试变体,其中加载延迟作为内存指令之间的nop指令插入。
- 在适用的情况下,使用前向顺序读取模式对32位,64位,128位,256位,512位负载块大小进行此操作。
- 其他扩展程序可能会在将来发布。
评论