Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cuda中使用我现有的.cpp代码 < C++中的HV代码,想和CUDA一起使用。有人能帮我吗?我应该提供我的代码吗??实际上我试过这样做,但我需要一些开始代码来继续我的代码。我知道如何在windows(visual studio)上使用简单的square程序(使用cuda和c++)。为我的程序做这些事情就足够了吗?_Cuda - Fatal编程技术网

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

如何在cuda中使用我现有的.cpp代码 < C++中的HV代码,想和CUDA一起使用。有人能帮我吗?我应该提供我的代码吗??实际上我试过这样做,但我需要一些开始代码来继续我的代码。我知道如何在windows(visual studio)上使用简单的square程序(使用cuda和c++)。为我的程序做这些事情就足够了吗?,cuda,Cuda,您的项目中可以有多个.cpp和.cu文件。除非您希望.cu文件只包含设备代码,否则它应该相当简单 对于.cu文件,指定一个头文件,其中包含主机函数。然后,将该头文件包含在其他.cu或.cpp文件中。链接器将完成其余的工作。与项目中有多个纯C++的.CPP文件没有什么不同。 我假设您已经为Visual Studio提供了CUDA规则文件。将程序从纯C(++)转换为CUDA是一项非常重要的任务。据我所知,在CUDA(尤其是CUDA 4)中使用C++类的东西是可能的,但是我认为从C类开始(例如结构、指

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

对于.cu文件,指定一个头文件,其中包含主机函数。然后,将该头文件包含在其他.cu或.cpp文件中。链接器将完成其余的工作。与项目中有多个纯C++的.CPP文件没有什么不同。
我假设您已经为Visual Studio提供了CUDA规则文件。

将程序从纯C(++)转换为CUDA是一项非常重要的任务。据我所知,在CUDA(尤其是CUDA 4)中使用C++类的东西是可能的,但是我认为从C类开始(例如结构、指针、基本数据类型)更容易。 首先阅读并检查CUDA SDK或附带的示例。我个人觉得向量加法示例非常有启发性。可以找到它

我无法告诉您如何为您的特定程序编写
global
s和
shared
s,但在阅读了介绍性材料后,您至少会对如何编写有一个模糊的概念

问题是(据我所知)不可能说出一种将纯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实现中抽象出来,这是好的(您的效率更高)和坏的(如果您想学习/理解它的话)。事实上。开始看一些简单的代码,如: