2013-07-13 84 views
2

我現在正在學習cuda,我想知道是否可以使用不同庫中的函數以及類似於cuda設備代碼中的api的boost。 注:我試過使用std :: cout,並沒有工作我改變代碼生成compute_20,sm_20後得到了printf工作。我正在使用Visual Studio 2010. Cuda 5.0。 GPU Nvidia GTX 570. NSIght已安裝。在cuda設備代碼中使用類似boost的庫

回答

1

Here's答案。這裏是關於語言支持的CUDA documentation。 Boost不會確定。

由於使用CUDA的目的是加快代碼中的內核速度,因此通常會限制使用的語言複雜性,因爲會增加開銷。這意味着你通常會保持非常接近普通C的狀態,如果這真的很方便,只需要少量的C++。

例如,Boost中的構造會導致大量的彙編代碼(一般情況下C++被批評爲此並且是在實時軟件中不使用某些構造的原因)。對於大多數應用程序來說,這一切都很好,但對於要在GPU上運行的每個指令都很重要的內核來說,這並非如此。

對於CUDA(或OpenCL),人們通常編寫強大的算法來處理數組中的數據。例如特殊的圖像處理。您只能使用這些技術來完成應用程序的計算密集型任務。然後你有一個「常規」程序,與創建這些CUDA任務的用戶/網絡/數據庫進行交互(即選擇數據和參數)並啓動它們。 Here are CUDA samples.

+0

如果這個問題聽起來新手原諒我,我的編程經驗很小。如果你不能在Cuda中使用其他庫,那麼你爲什麼要使用它。如果你可以請給一個真實世界的例子或應用程序。 – user1721803

+1

@ user1721803請參閱我答案的擴展名。 –

+1

如果您更喜歡在CUDA中使用模板庫,則可能需要查看Thrust:http://docs.nvidia.com/cuda/thrust/。要了解人們使用CUDA實現什麼樣的項目和產品,請查看CUDA展示:http://www.nvidia.com/object/cuda-apps-flash-new.html# – njuffa