解决库达动态平行主义

solving cuda dynamic paralleism

本文关键字:动态 解决      更新时间:2023-10-16

我在 CUDA 中的双并行性方面遇到了什么麻烦。我有一个名为 First.cu 的文件和一个名为 main 的主文件.cpp

我收到错误。

错误:从__global__调用__global__函数("kernel_6"( 函数("kernel_5"( 只允许在compute_35架构或 以上>

然后我按照这个线程并再次像这样配置我的属性。

  1. View -> Property Pages
  2. Configuration Properties -> CUDA C/C++ -> Common -> Generate Relocatable Device Code -> Yes (-rdc=true (
  3. Configuration Properties -> CUDA C/C++ -> Device -> Code Generation -> compute_35,sm_35
  4. Configuration Properties -> Linker -> Input -> Additional Dependencies -> cudadevrt.lib

现在我收到这样的错误。

NVCC:

致命错误:NVCC 支持"--可重定位设备代码=true (-rdc=true("、"--device-c (-dc("和"--device-link (-dlink(" 定位到sm_20或更高

请帮助我。我应该怎么做才能消除此错误?

我已经添加了所有必需的 CUDA 库。我安装了 CUDA 5.5 和我有 GTX780 .

即使你说你已经在Visual Studio中设置了正确的计算属性(代码生成(,但你没有。 Visual Studio 可能会令人困惑,因为有多种方法可以设置可以相互覆盖的属性,例如在每个文件级别(可以重写您设置的全局属性(。

如果您研究 Visual Studio 生成的实际nvcc编译和链接命令行(紧接在此问题中显示的错误输出之前(,您会发现没有应用正确的sm_35开关。 您需要解决此问题,这是一个视觉工作室配置问题。

您可能还希望研究或重用与 cuda 工具包一起安装的动态并行性示例项目之一。 您应该能够在Visual Studio下编译这些内容而不会出错,并且可以在那里研究正确的项目设置。或者,您可以简单地重用其中一个项目来编译自己的代码。