Bandwidth内存带宽测试工具
来源:互联网 发布:原田知世 身高 编辑:程序博客网 时间:2024/04/28 16:28
本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/24766015
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bandwidth是一款内存带宽基准测试程序,主要针对x86及x86_64平台,通过顺序读写与随机读写不同大小的数据块,测试系统的内存带宽性能。
项目地址
Bandwidth提供了一套汇编语言实现的支持库,用来完成体系结构相关的特定操作,例如读取某些寄存器的内容。
利用该汇编库,检测当前系统CPU的型号及支持的特性,并选择相应的工作模式,如笔者机器的CPU为:
CPU family: GenuineIntelCPU features: MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 XD Intel64在主程序运行时,根据CPU特性选择工作模式:
if (mode == SSE2) { print (L"(128-bit), size = "); } else if (mode == AVX) { print (L"(256-bit), size = "); } else {#ifdef __x86_64__ print (L"(64-bit), size = ");#else print (L"(32-bit), size = ");#endif }笔者的CPU支持SSE2,不支持AVX,故采用128bit的数据位宽进行相应的内存读写操作。
以笔者的机器为例,测试主要分为以下几个部分:
|-------|128bit |64bit |
|:-----:|:-----:|:----:|
|顺序读 | | |
|随机读 | | |
|顺序写 | | |
|随机写 | | |
可以选择是否旁路掉各级cache,笔者机器的CPU cache情况如下:
Cache 0: L1 data cache, line size 64, 8-ways, 64 sets, size 32kCache 1: L1 instruction cache, line size 64, 8-ways, 64 sets, size 32kCache 2: L2 unified cache, line size 64, 16-ways, 4096 sets, size 4096k
用于读写的数据块大小从128B逐渐增大到128MB,由于各级cache的大小不同,进行内存读写时,较小的数据块会存放在cache中,较大的数据块则会经过cache存放在主存中。所以,随着数据块大小的增加,在几个节点上带宽的大小会有明显的跳变,主要原因就是到达了各级cache的容量上限,而转向下层存储。bandwidth会将测试结果生成一个日志文件,一张图表,这种带宽的跳变在图表中有最直观的表现。如图,在32KB与4MB处带宽有明显的下降趋势
- Bandwidth内存带宽测试工具
- uva 140 Bandwidth 带宽
- 带宽(Bandwidth,UVa 140)
- UVA 140 Bandwidth (带宽)
- 带宽(Bandwidth,UVa 140
- UVa 140 带宽 Bandwidth
- UVA-140 Bandwidth 带宽
- bisection bandwidth 对分带宽
- CPU与GPU的内存带宽对比(CPU vs CUDA GPU memory bandwidth)
- 测试带宽的好工具 iperf
- Linux内存带宽的一些测试笔记
- 内存带宽测试-STREAM的使用
- Linux内存带宽的一些测试笔记
- 140 - Bandwidth(排列(带宽问题))
- 用Bandwidth Controller实现局域网带宽控制
- 什么是对分带宽/对半带宽 (bisection bandwidth)
- 内存带宽
- 2012-9-17:交换机带宽测试之iperf工具使用
- Problem 4:Largest palindrome product
- oracle学习(word文档备注不能正常显示,如有错误,忘不吝指正)
- linux中各种压缩格式的压缩与解压缩命令参考
- msdn微软Javascript帮助
- QT编写图片数据转换工具
- Bandwidth内存带宽测试工具
- 模块管理常规功能自定义系统的设计与实现(16--模块数据的导出和打印[1])
- IP地址详细了解(2)
- 上海出差完,回京
- oracle 中获取创建视图的权限
- 摄影入门必修学分:色彩与摄影间的联系
- android创建application时无法点击finish
- Maven生命周期详解
- SQL2008或者SQL2005里ROW_NUMBER分页,SQL2000怎么实现等同的效果