2011-06-30 36 views
1

我正在使用GeForce GTX 580(計算能力2.0)。CUDA:我可以知道我是否擁有全局內存合併功能嗎?

在我的程序中,我懷疑瓶頸是訪問內核中的全局內存。我懷疑這是因爲所有計算都涉及通過索引存儲在全局內存中的數組獲得的數字,並且因爲從雙精度切換到單精度僅將性能提高了10%。 (如果浮點運算是瓶頸(?),它應該是費米設備的兩倍)

所以爲了改善這個瓶頸,我想到了內存合併。這裏的問題是我不知道我是否實現了。或者我已經擁有了它,並且它的性能已經很好(比intel i7上的順序版本快25倍),或者我可以通過重寫來實現更快的運行速度,從而實現整合。

但是有沒有辦法知道?我能否以某種方式「關閉」聚結以找出問題,或以另一種方式找出答案?

回答

1

不,內存合併不是你打開或關閉的東西,它是通過使用正確的內存訪問模式和對齊方式實現的。我不確定,因爲我從未使用過(不適用於Windows),但我認爲nVidia的Parallel Nsight可以告訴你內存訪問是否合併。

+0

我在Linux上工作,所以我想我不能使用Nsight。 – Eskil

+0

雖然我確實有Compute Visual Profiler,所以也許我可以在那裏檢查它。但我不知道我在找什麼。 – Eskil

+0

正如@JonathanDursi所說,視覺分析器也能給你提供信息,但我沒有經驗。 – jmsu

相關問題