gpt4 book ai didi

c++ - 在 xp 中将 Cuda 与基于表单的 GUI 结合使用

转载 作者:行者123 更新时间:2023-11-28 03:51:39 27 4
gpt4 key购买 nike

CUDA 编程的全新内容,请多多包涵。我终于让 cuda 在 win xp(32 位)上使用 Visual Studio 2008 在控制台应用程序中工作。但我的主要目标是将现有程序移植到 cuda。该程序的计算量非常大,并且基于复杂的图形用户界面。因此,移植到 cuda 是有意义的,因为它会显着减少我的计算时间。我做了一些研究,没有发现 cuda 与基于表单的应用程序一起使用的示例。它始终与控制台应用程序一起使用。但是将我的 gui 转换为基于控制台的应用程序将是不可能的。

因此,我尝试进行测试(基于表单的图形用户界面),其中我将 .cu 文件包含在我的项目中。但是在编译时我得到了这个链接器错误

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

所以我猜 cuda 不能很好地处理托管代码。
我的问题是:无论如何在 visual studio 2008 中使用带有表单的 cuda 吗?

另一个问题:有没有人尝试过这个,因为我还没有看到任何这样的例子?

请帮忙....

编辑:--好的,我将属性->配置->常规->公共(public)语言运行时支持更改为/clr,并且编译没有任何问题。但是当我尝试运行它时,我得到了一个令人讨厌的弹出对话框,文件 dbgheap.c 中出现调试断言失败错误,表达式 _CRTisValidHeapPointer(pUserData)。如此接近但没有雪茄。有什么想法吗?????

最佳答案

我用 C# 编写的 WPF 应用程序完成了此操作,该应用程序使用 C++/CLI 与混合的 CLI/ native 程序集互操作,后者又在单独的项目中调用 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/

关于c++ - 在 xp 中将 Cuda 与基于表单的 GUI 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com