gpt4 book ai didi

c - SpMV C 代码基准测试

转载 作者:行者123 更新时间:2023-11-30 17:30:33 25 4
gpt4 key购买 nike

我被指派报告 SpMV 的测试结果算法,这是我以前从未做过的事情。

我是来问的:

  • 我应该使用什么程序来对代码进行基准测试,是否有一个可以生成图表的程序?
  • 除了最大尺寸之外,我还应该测试哪些尺寸?即使大小差异为 1,是否存在会导致缓存不规则并产生不同结果的大小? (512x512 和 513x513 或 1023x1023 和 1024x1024 的时间不同)。
  • 我可以使用time.h库,但它是执行时间表。矩阵大小足够吗?

我使用的是 Windows。

谢谢:)

最佳答案

可能有些尺寸特别适合您的机器,但很难预测哪种尺寸。这就是为什么您应该测试许多不同的大小,即最好在代码中创建一个循环并将结果输出到文件并绘制它(执行时间与大小)。

对于每个大小,您应该多次执行 SpMV 函数并计算平均时间,因为将矩阵和 vector 从内存加载到缓存中需要时间。一旦他们已经在那里,执行速度可能会快得多。

对于时间测量,您可以使用类似的东西

#include <sys/time.h>    
void tic(){ gettimeofday( &start, NULL);}

void toc(){ gettimeofday( &stop, NULL);}

double diff(){ return (stop.tv_sec - start.tv_sec) + 1e-6*(stop.tv_usec - start.tv_usec);}

Windows 上有 C 代码分析器,但需要一些时间来学习。 (我自己在linux上工作,所以我不能推荐特定的)

关于c - SpMV C 代码基准测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25078431/

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