我想要测量主内存带宽,当我搜索方法时发现:
1. 许多人使用“bcopy”函数将字节从源复制到目标,并报告他们称之为带宽的时间。
2. 其他方法是分配一个数组并遍历该数组(带有一些步幅) - 这基本上给出了读取整个数组所需的时间。
我尝试过使用(1)的数据大小为1GB,我得到的带宽为“700MB / sec”(我使用rdtsc来计算复制所用的时钟周期数)。但我怀疑这不正确,因为我的RAM配置如下:
1. 速度:1333 MHz
2. 总线宽度:32位
根据维基百科,理论带宽的计算公式如下:
时钟速度*总线宽度*每行每个时钟周期的位数(DDR3 RAM为2)1333 MHz * 32 * 2≈8GB / sec。
因此我的配置与预估带宽完全不同。您是否知道我做错了什么?
另一个问题是,bcopy包括读和写两方面。那么意味着我应该将计算出的带宽除以2才能获得只读或只写带宽吗?请问带宽是否只是延迟的倒数?请建议其他测量带宽的方法。
1. 许多人使用“bcopy”函数将字节从源复制到目标,并报告他们称之为带宽的时间。
2. 其他方法是分配一个数组并遍历该数组(带有一些步幅) - 这基本上给出了读取整个数组所需的时间。
我尝试过使用(1)的数据大小为1GB,我得到的带宽为“700MB / sec”(我使用rdtsc来计算复制所用的时钟周期数)。但我怀疑这不正确,因为我的RAM配置如下:
1. 速度:1333 MHz
2. 总线宽度:32位
根据维基百科,理论带宽的计算公式如下:
时钟速度*总线宽度*每行每个时钟周期的位数(DDR3 RAM为2)1333 MHz * 32 * 2≈8GB / sec。
因此我的配置与预估带宽完全不同。您是否知道我做错了什么?
另一个问题是,bcopy包括读和写两方面。那么意味着我应该将计算出的带宽除以2才能获得只读或只写带宽吗?请问带宽是否只是延迟的倒数?请建议其他测量带宽的方法。