Re: [問題] 非常物件的C++程式碼要用CUDA加速....!?
: 推 tedd15550325:嗯,能不能加速我懂,我想我可能用詞不好,應該要說 04/24 04:21
: → tedd15550325:是容不容易加速?因為CUDA並沒有支援C++所有的部分, 04/24 04:21
: → tedd15550325:我在想會不會有可能因此只要牽涉到沒有支援到的部分 04/24 04:22
: → tedd15550325:的程式,是否就幾乎沒有加速或著根本無法撰寫CUDA? 04/24 04:22
: → tedd15550325:另外,程式碼要是我自己能寫得出來也不會拿google了. 04/24 04:34
: → yoco315:你是不是以為改程式碼比寫程式碼簡單? 04/24 09:57
上一篇其實說得很明白了 只是感覺你還是不懂
在我看來能不能加速跟容不容易加速有差很大嗎...
你說你懂前者 但是確不懂後者 這讓我疑惑萬分呀...
CUDA在做的是 Data-parallel
資料上相依度越高 就越不適合做平行處理 也就是拿去CUDA做不容易有加速的效果
相反的 如果適合做平行處理 就容易有加速的效果呀~~
當然 這是從理論上來說的
實際上還是要看你是如何進行實作的 畢竟設備跟你的coding對結果的影響很大
===========================================
至於看你一直提問說 不支援C++的話會不會影響速度
答案是 當然會啦 但是這應該不是什麼問題啦....
因為你現在要面對的問題不應該是這個..
因為你可以用其它方式來達到同樣的效果 頂多多花一點時間
就像假如不能用memset來對array做歸0的動作 你也可以蠢一點用for迴圈來執行
或是如果不支援assert的話 你就用if else來寫也可以呀
這種問題我覺得是等你程式寫出來了 在對其做優化時再考慮就好
況且....
你現在手邊的程式碼會有這些問題嗎?
你有先找出可能發生問題的地方嗎?
=======================下面是建議==========================
你現在應該要做的是
搞清楚演算法的整體流程 並分析其是否有機會平行處理
而不是在那邊探討C++能不能撰寫CUDA這種問題
因為我總覺得...這問題好像在說 如果不能用C++寫我就不要做的意思
最後
程式碼如果無法自己從無生有 那你就適著熟悉它吧
你可以分為幾個步驟做
1. 將所有的function間的關聯列出來
2. 搞清處每一個function會動用到那些參數和空間
3. 畫出程式的流程圖
藉由上述步驟讓自己可以先專注在某一個部份上面開始實作
因為當你知道這個部份需要到哪些空間時 就可以在cuda上同樣宣告這些東西
另外你可以先把程式碼全部改寫成自己習慣的樣子
或者把全部改寫成C
這樣也就不會有你一開始在那邊問C++到底能不能寫CUDA的問題了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.80.86
推
04/24 14:35, , 1F
04/24 14:35, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 6 篇):