gpt4 book ai didi

c++ - 解决cuda动态并行

转载 作者:行者123 更新时间:2023-11-30 04:13:39 27 4
gpt4 key购买 nike

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

我遇到了错误。

error : calling a __global__ function("kernel_6") from a __global__ function("kernel_5") is only allowed on the compute_35 architecture or above>

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

  1. 查看 -> 属性页
  2. Configuration Properties -> CUDA C/C++ -> Common -> Generate Relocatable Device Code -> Yes (-rdc=true)
  3. 配置属性 -> CUDA C/C++ -> 设备 -> 代码生成 -> compute_35,sm_35
  4. 配置属性 -> 链接器 -> 输入 -> 附加依赖项 -> cudadevrt.lib

现在我遇到这样的错误。

nvcc : fatal error : nvcc supports '--relocatable-device-code=true (-rdc=true)', '--device-c (-dc)', and '--device-link (-dlink)' only when targeting sm_20 or higher

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

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

最佳答案

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

如果您研究了由 visual studio 生成的实际 nvcc 编译和链接命令行,这些命令行紧接在您在此问题中显示的错误输出之前,您会发现正确的 sm_35 开关得到应用。您需要修复它,这是一个 visual studio 配置问题。

您可能还希望研究或重复使用 dynamic parallelism sample projects 中的一个与 cuda 工具包一起安装。您应该能够在 visual studio 下无错误地编译这些,并且您可以在那里研究正确的项目设置。或者您可以简单地重复使用其中一个项目来编译您自己的代码。

关于c++ - 解决cuda动态并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334104/

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