2012-08-06 42 views
9

我剛剛開始學習C++ AMP,並且我已經獲得了一些使用VS 2012 RC構建的示例,但是我發現GPU的性能比CPU慢。例如,凱特格雷戈裏的例子:http://ampbook.codeplex.com/releases/view/90595(與她即將出版的書http://www.gregcons.com/cppamp/有關)。她在演講中展示了她與她的筆記本電腦的GPU(我相信她說它是6650)相比CPU(不知道她擁有什麼樣的CPU),從而獲得了第4章示例的5倍性能提升。我已經嘗試過自己測試這個例子以及幾個系統配置(如下)我總是發現CPU更快。我也測試了其他例子,發現相同。難道我做錯了什麼?是否有理由表現比預期慢?有沒有人有一個例子,肯定會顯示GPU更快?C++ AMP具有比CPU慢的GPU速度

  • 系統1:英特爾酷睿i7 2600K與板載顯卡(我希望這是 慢)
  • 系統2:英特爾酷睿i7 2630QM與英特爾HD切換與AMD 6770(我有它在性能模式,以便運行它應該是使用 6770)
  • 系統3:英特爾酷睿i5 750 2xCrossfire AMD HD結果5850

例:第4章項目成果在1.15ms CPU,GPU 2.57ms,2.55ms GPU平鋪。

編輯

衛生署,我想我只是找到了原因 - 因爲她在演講中使用的矩陣大小的值是不同的。網站上的示例使用M = N = W = 64。如果我在演講中使用64,512和256,那麼我得到相應的〜5倍的性能提升。

+0

我想知道[凱特格雷戈裏](http://stackoverflow.com/users/203458/kate-gregory)是否正在讀這個。 – 2012-08-06 21:29:55

+1

如果你確實看過Kate,那麼我認爲更新在線代碼以使用演講中使用的矩陣大小會很好(http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV334) - 我認爲我的VS或項目設置有問題,爲什麼我沒有看到任何改進:) – CarbonTwelve 2012-08-06 21:39:07

+4

爲什麼人們投票關閉這個「脫離主題」?關於C++ AMP,CPU,GPU和Visual Studio,Stack Overflow是「脫離主題」嗎? – 2012-08-06 23:27:57

回答

7

看起來你的首要問題是爲什麼把東西移動到GPU並不總能爲你帶來好處。答案是複製時間。設想一個計算,需要一個時間proprotional n平方。複製需要與n成比例的時間。在花費時間複製GPU和GPU之間的時間可能需要相當大的時間才能節省時間。

這本書在前面的章節中提到了這一點,第7章和第8章都是關於性能和優化。第7章現在是粗略切割;第8章應該很快出現在那裏。 (它的代碼已經在Codeplex - Reduce案例研究上了。)

我剛剛檢查了第4章代碼的更新,該代碼使用了Tech Ed的起始數字而不是之前的數字。較小的矩陣失去了太多時間來複制到/從GPU;較大的花費很長時間才能成爲一個好的演示。但是請隨意隨意調整尺碼。讓他們更大,因爲你不介意一分鐘或兩分鐘的「死氣」,並看看會發生什麼。

+1

我知道複製時間的成本,我的問題基本上只是爲什麼我的代碼是使用不是在大致相同的平臺上覆制結果。原來的代碼不完全相同,這就是爲什麼。感謝您更新代碼。 – CarbonTwelve 2012-08-07 23:24:10

相關問題