【问题标题】:Is there any reliable data for benchmarking math library?是否有任何可靠的数据可用于基准数学库?
【发布时间】:2021-06-18 17:30:34
【问题描述】:

我要测试一些数学函数的性能,比如 pow、exp 和 log 等。有没有可靠的测试数据?

由于这些功能在现有的现代系统库(如 glibm 或 OpenJDK)中进行了高度优化,一般随机输入可能会导致快速收敛,或触发一些短路径。

【问题讨论】:

  • 你不得不问的事实表明你的数学和编程可能不足以产生有意义的结果?为什么需要进行此基准测试?

标签: performance math benchmarking microbenchmark libm


【解决方案1】:

循环调用它们以测试吞吐量或延迟,具体取决于下一个调用的输入是否取决于前一个调用的输出。可能包含来自中小型随机值数组的数据,用于吞吐量测试。

您希望您的编译器生成一个 asm 循环,该循环在函数调用之外做最少的工作,因此对您选择的任何语言和编译器都使用适当的技术。 (Idiomatic way of performance evaluation?)

您可以反汇编或单步执行它们以查找依赖于数据的分支,以确定哪些输入范围可能更快或更慢。 (或者对于像 glibc 这样的开源数学库,注释的源代码可能很好看。)

【讨论】:

    最近更新 更多