【发布时间】:2017-05-08 05:59:08
【问题描述】:
相对而言,我经常看到人们在一台特定计算机的一个特定 CPU 上的特定情况下对特定代码段进行基准测试/分析(或建议其他人进行基准测试/分析);然后(可能是错误的)假设这个结果适用于不同情况下的代码(例如,不同负载下同一内核中的其他逻辑 CPU)在广泛的各种非常不同的 CPU(例如“所有 64 位 80x86”)上各种不同的计算机(例如,具有不同 RAM 时序等)。
我正在寻找的是一种能够在许多条件下(主要通过解释代码而不是直接测量)为许多 CPU 生成分析结果的分析器;然后使用权重因子(其中权重因子代表用户对每个测量案例的关心程度)组合所有结果,以创建实际有用且不会误导的结果。
是否有符合此描述的分析工具?
【问题讨论】:
-
你好。您的问题是否更多关于 IPC 1 代码(brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html - “解释和可操作的项目”;您对 cpu-bound 还是 memory-bound 建模)?是关于单线程、多线程还是多线程性能?查看 RISC-V BOOM 论文,了解微架构设计/规划问题及其借助 FPGA 模型的加速搜索:www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-167.htmlpeople.eecs.berkeley.edu/~krste/papers/dgkim-msthesis.pdf 等。
-
不同的活动在不同的环境中有不同的成本。在一种环境中,I/O 可能是主要成本,但在另一种环境中则不然。缓存未命中可能在一个中占主导地位,但在另一个中不占主导地位。内存分配 - 同样的事情。浮点数学 - 同样的事情。并行处理开销 - 同样的事情。因此,如果您想要一个万能的工具,就必须能够告诉它您想要为哪些环境提供答案。我想您认为权重可以做到这一点,但我的经验表明您无法提前知道类别需要是什么。