2

使用以下命令运行基准测试(例如 dhrystone)时:

make output/dhrystone.riscv.out

如C++ 模拟器上的http://riscv.org/download.html#tab_rocket所述。我得到以下输出:第一次运行时:

Microseconds for one run through Dhrystone: 1064
Dhrystones per Second: 939
cycle = 533718
instret = 148672

第二次:

Microseconds for one run through Dhrystone: 1064
Dhrystones per Second:                      939
cycle = 533715
instret = 148672

为什么周期不同?他们不应该完全一样。我也用其他基准测试过这个,并且偏差更大。如果这是正常的,偏差从何而来?

4

1 回答 1

1

随机初始化的寄存器存在少量不确定性(例如,由 HTIF 恢复的时钟被初始化为随机相位)。这些微小的偏差似乎不会影响任何性能基准测试。

如果您每次都需要相同的结果(例如,用于验证?),您可以修改仿真器代码以每次将寄存器初始化为某个已知值。

于 2015-08-25T18:31:52.193 回答