在GPU实现中,我们需要根据GLOPS来评估其性能。代码非常基本,但我的问题是,我应该为"sqrt“或"mad”操作提供多少FLOPS,无论是1个还是更多。
此外,我的代码获得50 GFLOPS,如果1说这些操作1触发器,而这个GPU的理论最大值是500GFLOPS。如果我以百分比表示,我会得到10%。在加速方面,我得到了100倍的加速。所以我认为这是很棒的,但是10%的收益率似乎有点低,你觉得呢?
谢谢
发布于 2011-05-09 14:58:20
正确的答案可能是“视情况而定”。
对于在不同平台上运行的代码之间的纯粹性能比较,我通常将超越、sqrt、mads作为一个操作。在这种情况下,关键的性能指标是代码运行所需的时间。几乎不可能以任何其他方式进行比较-你如何去比较先验指令的“翻转”计数(需要25个周期才能退休)与数学库生成的fmad指令节数(也需要25个周期才能完成)?在这种情况下,计数指令或触发器变得没有意义,尽管表观触发器计数不同,两个指令或触发器都在相同的时钟周期内执行所需的操作。
另一方面,对于给定硬件上的一段代码的性能分析和性能调优,FLOP计数可能是一个有用的度量标准。在GPU中,通常会查看FLOP或IOP计数和内存带宽利用率,以确定给定代码的性能瓶颈所在。拥有这些数字可能会为您指明有用的优化方向。
https://stackoverflow.com/questions/5933112
复制相似问题