我現在正在學習cuda,我想知道是否可以使用不同庫中的函數以及類似於cuda設備代碼中的api的boost。 注:我試過使用std :: cout,並沒有工作我改變代碼生成compute_20,sm_20後得到了printf工作。我正在使用Visual Studio 2010. Cuda 5.0。 GPU Nvidia GTX 570. NSIght已安裝。在cuda設備代碼中使用類似boost的庫
2
A
回答
1
Here's答案。這裏是關於語言支持的CUDA documentation。 Boost不會確定。
由於使用CUDA的目的是加快代碼中的內核速度,因此通常會限制使用的語言複雜性,因爲會增加開銷。這意味着你通常會保持非常接近普通C的狀態,如果這真的很方便,只需要少量的C++。
例如,Boost中的構造會導致大量的彙編代碼(一般情況下C++被批評爲此並且是在實時軟件中不使用某些構造的原因)。對於大多數應用程序來說,這一切都很好,但對於要在GPU上運行的每個指令都很重要的內核來說,這並非如此。
對於CUDA(或OpenCL),人們通常編寫強大的算法來處理數組中的數據。例如特殊的圖像處理。您只能使用這些技術來完成應用程序的計算密集型任務。然後你有一個「常規」程序,與創建這些CUDA任務的用戶/網絡/數據庫進行交互(即選擇數據和參數)並啓動它們。 Here are CUDA samples.
1
Boost
使用表達式模板技術不會在放寬性能的同時啓用更簡單的語法。
BlueBird和Newton是使用元編程的庫,類似於Boost
,啓用CUDA
計算。
ArrayFire是使用Just in Time編譯和利用下面的CUDA語言的另一個庫。
最後,如Njuffa所建議的,Thrust是一個模板庫,支持CUDA計算(但不使用元編程,請參閱Evaluating expressions consisting of elementwise matrix operations in Thrust)。
相關問題
- 1. 在CUDA設備代碼中使用std :: vector
- 2. 從CUDA開始,關於設備代碼
- 3. 在設備代碼中使用指向設備內存的主機類成員
- 4. 代碼塊的Boost庫設置
- 5. Cuda C++在設備代碼中沒有元組嗎?
- 6. 按需使用jquery和代碼注入的類似移動設備的鍵盤
- 7. 使用boost asio stream_handle和類似的基於文件的設備順序
- 8. CUDA設備端代碼中的C/C++「內聯」關鍵字
- 9. 在cuda主機代碼中使用openMP?
- 10. CUDA和C++用於主機和設備代碼
- 11. CUDA:爲什麼compute_20代碼在compute_35設備上失敗?
- 12. cuda程序內核代碼在設備內存空間
- 13. CUDA-GDB:沒有CUDA設備
- 14. 使用Java的cuda設備內核?
- 15. 用於CUDA代碼的C++設計
- 16. 如何比較類似的代碼庫?
- 17. 使用了CUDA代碼
- 18. 我如何使這個代碼cuda(cpu代碼到cuda代碼)
- 19. 在cuda/c + +代碼中使用模板類
- 20. 如何編寫CUDA代碼來打印出支持CUDA的設備?
- 21. CUDA - 無效的設備函數,如何知道[架構,代碼]?
- 22. CUDA 5是否支持設備代碼內的STL或THRUST?
- 23. CUDA,試圖在設備
- 24. 在cuda代碼中循環
- 25. 如何使用extern cuda設備變量
- 26. 在設備中使用陣列的CUDA並行壓縮
- 27. 可以使用Cuda設備指針代替cl :: Buffer嗎?
- 28. 如何用boost庫建立C++代碼
- 29. CUDA設備到設備轉移昂貴
- 30. 支持CUDA的設備
如果這個問題聽起來新手原諒我,我的編程經驗很小。如果你不能在Cuda中使用其他庫,那麼你爲什麼要使用它。如果你可以請給一個真實世界的例子或應用程序。 – user1721803
@ user1721803請參閱我答案的擴展名。 –
如果您更喜歡在CUDA中使用模板庫,則可能需要查看Thrust:http://docs.nvidia.com/cuda/thrust/。要了解人們使用CUDA實現什麼樣的項目和產品,請查看CUDA展示:http://www.nvidia.com/object/cuda-apps-flash-new.html# – njuffa