2012-02-10 439 views
2

是否可以使用CUDA C進行面向對象編程? 在CUDA C中是否有類似C++的類?是否可以將CUDA C用於面向對象的編程?

+2

CUDA C被錯誤地命名。它是CUDA C++,您可以使用類。 – 2012-02-10 11:14:55

+4

「NVIDIA CUDA編程指南」最新版本的附錄D準確描述了設備代碼編譯器支持哪些C++語言功能。 – talonmies 2012-02-10 16:20:16

回答

3

CUDA編譯器支持所有設備的類,繼承,構造函數,析構函數,儘管對於某些此支持不是官方的。

並非所有設備都支持(不是內聯)函數調用,遞歸,虛函數調用,即使它們是這樣,這是一個相當慢的操作,我強烈建議您避免這種情況,除非在代碼中很少。

如果我沒有弄錯,不支持異常。

類似,但更廣泛的問題一點:What are the real C++ language constructs supported by CUDA device code?

3

nvcc從版本3.0使用G ++(在Linux中)編譯的主機代碼,所以你可以使用整套的C++功能,爲主機部分。

對於設備代碼,它支持C++的有限集合。但我認爲在未來的CUDA版本中它會更加完整。