【问题标题】:Using Cuda with a Forms based GUI in xp在 xp 中使用 Cuda 和基于表单的 GUI
【发布时间】:2011-03-12 01:00:08
【问题描述】:

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

所以,我尝试进行测试(基于表单的 gui),其中我将 .cu 文件包含在我的项目中。但是在编译时我得到这个链接器错误

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

所以我猜 cuda 不适合托管代码。
我的问题是:无论如何在 Visual Studio 2008 中使用带有表单的 cuda 吗?

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

请帮忙....

编辑:-- 好的,我将属性->配置->通用->通用语言运行时支持更改为/clr,它编译没有任何问题。但是当我尝试运行它时,我在文件 dbgheap.c 中出现了一个令人讨厌的弹出对话框,其中包含 Debug Assertion failed 错误,Expression _CRTisValidHeapPointer(pUserData)。 如此接近,但没有雪茄。有什么想法吗??????

【问题讨论】:

    标签: c++ visual-studio-2008 user-interface cuda


    【解决方案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/

    【讨论】:

      【解决方案2】:

      (Visual Studio 2010, CUDA 5.0) 尝试设置:

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

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

      【讨论】:

        猜你喜欢
        • 2013-06-09
        • 2012-11-29
        • 2017-05-25
        • 2019-04-13
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多