我想在CUDA中使用存在函數,但它包含許多類和其他函數。 在每個函數變得微不足道之前添加__host__ __device__
。那麼,有沒有一種自動方法可以做到這一點?或者如何讓nvcc編譯所有函數爲__device__ __host__
?將所有CUDA函數更改爲__host__ __device__
0
A
回答
1
基本上,GPU編程都是關於大規模並行性。這是一個完全不同於普通單線程編程的範例。 除非您只是想將這些函數同時應用於大型數組的各個元素,否則將其編碼到GPU中沒有任何好處。實際上,GPU核心時鐘比你的處理器慢得多。 如果您將編譯的功能主要針對單線程風格的CPU寫入GPU,您將獲得潛在的性能損失。 您需要將您的問題重新考慮到GPU範例中。
+0
你可能會正確的。但實際上它關於機器學習,我使用min-max-modular來並行化數據,所以它可以在不改變algorthim的情況下並行訓練,並且我有一種方法來整合結果。它應該在multiCPU而不是GPU中運行。但由於某種原因,我別無選擇。 – GuoHaotian 2013-04-24 05:27:32
相關問題
- 1. CUDA __host__ __device__變量
- 2. CUDA中有__host__和__device__的縮寫嗎?
- 3. 我無法從__device__函數調用__host__ __device__函數嗎?
- 4. CUDA __device__
- 5. __shared__變量可以封裝在__device__ __host__函數中嗎?
- 6. 模板__host__ __device__調用主機定義的函數
- 7. CUDA:從內核調用__device__函數
- 8. 如何更改CUDA中全局和設備函數中的__device__變量?
- 9. 在CUDA __device__內核中生成char數組的所有組合
- 10. 我可以從CUDA內核函數調用__device__函數嗎?
- 11. cuda - nvcc如何編譯__host__代碼?
- 12. 如何在線程數較少的CUDA中調用__device__函數
- 13. 在PyCUDA中調用__host__函數
- 14. 如何讓CUDA編譯標準庫函數的__device__版本?
- 15. __CUDA_ARCH__和內核調用在__host__ __device__功能
- 16. 例如,我們應該使用__device__和__host__
- 17. 訪問CUDA庫函數內的__device__函數模板專門實例
- 18. 將函數更改爲dependencyproperty
- 19. CUDA:Nsight VS2010 profile __device__函數
- 20. 如何釋放__device__內存在CUDA
- 21. Cuda的錯誤C2054:預期「(」跟隨「__device__」
- 22. 源文件上的CUDA - __device__方法
- 23. 調用__device__函數是否會影響CUDA中使用的寄存器數量?
- 24. 將所有VARCHAR列更改爲NVARCHAR
- 25. 將所有xml實體更改爲html
- 26. 將主機內存複製到cuda __device__變量
- 27. cudaMemcpyFromSymbol在__device__變量
- 28. MySQL PHP更改表,將所有MEDIUMINT更改爲INT
- 29. 將javascript函數更改爲jquery
- 30. 將迭代函數更改爲迭代
總之,沒有沒有一種自動的方式來做到這一點。但正如你自己指出的那樣,用\ _ \ _ device \ _ \ _來裝飾你需要的功能是微不足道的,那麼問題是什麼? – talonmies 2013-04-23 06:07:36
好吧......我想我可能會寫一個這樣做...... – GuoHaotian 2013-04-23 06:10:51
如果有很多現有的類和函數,最好修改它們並創建一個GPU特定的解決方案,而不是將所有內容都設置爲__device__。 – hthms 2013-04-23 07:49:24