如何在cuda中使用我现有的.cpp代码 < C++中的HV代码,想和CUDA一起使用。有人能帮我吗?我应该提供我的代码吗??实际上,我试过这样做,但我需要一些开始代码来继续我的代码。我知道如何使用cuda和c++for windowsvisual studio来执行简单的方形程序。为我的程序执行这些操作就足够了吗?

如何在cuda中使用我现有的.cpp代码 < C++中的HV代码,想和CUDA一起使用。有人能帮我吗?我应该提供我的代码吗??实际上,我试过这样做,但我需要一些开始代码来继续我的代码。我知道如何使用cuda和c++for windowsvisual studio来执行简单的方形程序。为我的程序执行这些操作就足够了吗?,cuda,Cuda,您的项目中可以有多个.cpp和.cu文件。除非您希望.cu文件只包含设备代码,否则它应该相当简单 对于.cu文件,指定一个头文件,其中包含主机函数。然后,将该头文件包含在其他.cu或.cpp文件中。链接器将完成其余的工作。与项目中有多个纯C++的.CPP文件没有什么不同。 我假设你已经有了VisualStudio的CUDA规则文件。 < P>这是一个从普通C++到CUDA的非平凡任务。据我所知,在CUDA ESP中使用C++类的东西是可能的,它与已发布的CUDA 4一样,但是我认为从C类开始,例

您的项目中可以有多个.cpp和.cu文件。除非您希望.cu文件只包含设备代码,否则它应该相当简单

对于.cu文件,指定一个头文件,其中包含主机函数。然后,将该头文件包含在其他.cu或.cpp文件中。链接器将完成其余的工作。与项目中有多个纯C++的.CPP文件没有什么不同。

我假设你已经有了VisualStudio的CUDA规则文件。

< P>这是一个从普通C++到CUDA的非平凡任务。据我所知,在CUDA ESP中使用C++类的东西是可能的,它与已发布的CUDA 4一样,但是我认为从C类开始,例如结构、指针、基本数据类型更容易。 首先阅读并检查CUDA SDK或附带的示例。我个人觉得向量加法示例非常有启发性。可以找到它

我不能告诉你如何为你的特定项目编写你的全局和共享,但在阅读了介绍性材料后,你至少会对如何做有一个模糊的想法

问题是,据我所知,不可能说出一种将纯C++转换成适合CUDA的代码的通用方法。但这里有一些给你的基石:

CUDA的中心思想:循环可以转换成不同的线程,在GPU上并行执行多次。 因此,单个迭代最优地独立于其他迭代。 为了获得最佳执行,线程的单个执行分支应该几乎相同,即单个线程应该执行几乎相同的操作。
以下两个都是很好的起点。CUDA的例子是一个很好的教程,让你启动和运行相当快。大规模并行处理器的编程包括更多的背景知识,例如关于GPU体系结构历史的章节,通常更深入

这两篇文章都是关于CUDA3.x的,所以你会想在某个时候看看CUDA4.x的新特性

如果你的问题映射到它上面,它绝对值得一看。请参见上面的评论。它是一个类似STL的容器、迭代器和算法库,在CUDA之上实现数据并行算法

下面是两个教程,从CUDA和Visual C++ 2010开始:

《英伟达论坛》还有一篇文章:


非常笼统地问我如何开始。。。栈上溢出通常不是最好的方法。通常,你会得到的最好的回答是去读一本书或手册。在这里问具体的问题要好得多。请不要创建重复的问题,这没有帮助。

您到底想要什么?请编辑您的代码,以便使用CUDA处理一些计算?请在将来考虑大写、空格、语法,使用完整的单词而不是文本消息的缩写,并在提供额外信息后编辑问题的序言。如果你不能帮助自己,我们也帮不了你。当你张贴的时候,你正在与成千上万的同龄人同时交谈,请考虑下一次。我们大多数人都喜欢帮助那些在问题上付出努力的人。+1提出具体问题,尽可能多地提供细节,不要重复。谢谢。对于VS2008,我有一个HV规则文件。我可以向你保证,从开始使用C++ CUDA库推力,而不是只依赖C特性。使用建议的推力为1。如果您的问题映射到它提供的容器和算法上,那么这是一种更快的开始方法。我会把你从基础的CUDA实施中抽象出来,这是好的,如果你想学习/理解它,你的效率会更高,也会更差。开始查看以下简单代码: