2011-03-12 52 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)尝试设置:

链接器 - >系统 - >子系统:未设置

链接器 - >高级 - >入口点:空