gpt4 book ai didi

c - 超线程对 gettimeofday 和其他时间测量的影响

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:57 25 4
gpt4 key购买 nike

当我使用 C 中的 BLAS 矩阵运算对具有超线程的 CPU 进行基准测试时,我观察到使用超线程时函数的运行时间几乎翻了一番。我期望的是由于乱序执行或其他优化而带来的某种速度改进。

我使用 gettimeofday 来估计运行时间。为了评估观察结果,我想知道您是否对超线程环境(Debian Linux 32 位)中 gettimeofday 的稳定性有任何想法,或者是否符合我的期望(他们可能是错误的)?

更新:我忘了说我正在运行基准应用程序两次,每次都将关联设置为一个超线程核心。例如 gemm 并行运行两次。

最佳答案

我怀疑您对 gettimeofday() 的使用是否解释了这种差异,除非您测量的时间间隔可能非常小。

更重要的是,我不希望启用超线程来提高单线程 BLAS 计算的性能。单个线程(一次)仅使用一个处理器,因此超线程提供的额外逻辑处理器无济于事。

经过良好调优的 BLAS 可以很好地利用 CPU 的数据缓存来减少内存访问时间。但是,如果所需的数据已从缓存中逐出,这并没有太大帮助,因为同一物理 CPU 的其他逻辑处理器执行不同的进程时很可能会发生这种情况。即使在负载较轻的系统上,也可能有足够的工作要做,操作系统将始终在每个可用的(逻辑)处理器上安排一个进程。

关于c - 超线程对 gettimeofday 和其他时间测量的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com