2011-05-09 64 views
2

在GPU實現中,我們需要根據GLOPS估計其性能。代碼是非常基本的,但我的問題是我應該給「sqrt」或「mad」操作提供多少FLOPS,無論是1個還是更多。FLOPS分配給GPU中的sqrt以測量性能和全局效率

此外,如果對於這些操作說1個FLOP,則我的代碼獲得50 GFLOPS,而此GPU的理論最大值爲500GFLOPS。如果我在百分比中表達,我會得到10%。在加速方面,我獲得了100次。所以我認爲它很棒,但是10%的產量似乎有點低,你認爲如何?

謝謝

回答

1

正確的答案可能是「它取決於」。對於在不同平臺上運行的代碼之間的純比較性能,我通常將超越,sqrt,mads作爲一項操作進行計數。在這種情況下,關鍵的性能指標是代碼運行需要多長時間。以任何其他方式進行比較幾乎是不可能的 - 比較硬件指令的「FLOP」計數對於需要25個週期退休的超驗而言,與數學庫生成的fmad指令節相比,你將如何去做呢?週期完成?在這種情況下,計數指令或FLOP變得毫無意義,兩者都以相同的時鐘週期數執行所需的操作,儘管有不同的FLOP計數。另一方面,爲了對特定硬件上的一段代碼進行性能分析和性能調整,FLOP計數可能是一個有用的指標。在GPU中,查看FLOP或IOP計數和內存帶寬利用率以確定給定代碼的性能瓶頸位於何處是正常的。擁有這些數字可能會指向有用優化的方向。