2011-03-12 80 views
0

CUDA編程中的全新功能,請耐心等待。我終於在win xp(32位)上使用Visual Studio 2008在控制檯應用程序中工作。但我的主要目標是將現有程序移植到cuda端口。這個程序是非常計算密集型的,基於一個複雜的GUI。因此,移植到cuda是有意義的,因爲它會顯着縮短我的計算時間。我做了一些研究,沒有發現cuda與基於表單的應用程序一起使用的例子。它始終與控制檯應用程序。但是將我的gui轉換爲基於控制檯的應用程序將不再有問題。在CUDA編程中使用基於窗體的Cuda的Cuda

所以,我試着做一個測試(基於表單的gui),其中包含.cu文件在我的項目中。但在編譯我得到這個鏈接器錯誤

fatal error LNK1313: ijw/native module detected; cannot link with pure modules 

所以我想cuda不能很好地與託管代碼玩。
我的問題是:無論如何,在visual studio 2008中使用cuda的形式嗎?

另一個問題:有沒有人甚至試過這個,因爲我還沒有見過這樣的例子?

請幫助....

編輯: - 好吧,我改變了的屬性 - >配置 - >常規 - >公共語言運行庫支持/ CLR,這沒有任何問題編譯。但是當我試圖運行它時,我得到一個令人討厭的彈出式對話框,其中帶有調試斷言失敗錯誤的文件dbgheap.c,Expression _CRTisValidHeapPointer(pUserData)。 如此接近,但沒有雪茄。有任何想法嗎?????

回答

1

我已經使用C++編寫的WPF應用程序完成了這一工作,該應用程序使用C++/CLI與混合CLI /本機程序集進行互操作,該程序又在單獨的項目中調用CUDA代碼。我沒有嘗試WinForms,但我沒有看到任何理由,爲什麼這不應該工作。儘管你最終編寫了很多管道代碼來處理互操作。

我需要更多有關您的應用程序在__CRTisValidHeapPointer失敗時所做的更多信息。不知怎的,你的堆已經損壞了。它可能與CUDA代碼相關也可能不相關。

C#到C++互操作:

http://www.ademiller.com/blogs/tech/2009/09/c-optimization-revisited-part-3-the-native-option-c/

C++和CUDA側由端:

http://www.ademiller.com/blogs/tech/2011/03/using-cuda-and-thrust-with-visual-studio-2010/

1

(Visual Studio 2010中,CUDA 5.0)嘗試設置:

鏈接器 - >系統 - >子系統:未設置

鏈接器 - >高級 - >入口點:空