CUDA 5 NSIGHT set编译标志

CUDA 5 NSIGHT set编译标志,cuda,nsight,Cuda,Nsight,为了编译开普勒K20的项目,我们需要设置-rdc=true标志。如何在nsight eclipse版本中设置此标志?我的版本是CUDA 5.K20。nsight eclipse edition对于其他选项,如-rdc,您可以直接将它们添加到编译器设置的命令行中 在你看来 项目菜单->属性->构建->设置->工具设置->NVCC编译器 将-rdc=true附加到“命令”字符串或“命令行模式”字符串 您可能还需要将此选项附加到NVCC链接器命令。对于其他选项,如-rdc,您可以直接将它们添加到编译器

为了编译开普勒K20的项目,我们需要设置
-rdc=true
标志。如何在nsight eclipse版本中设置此标志?我的版本是CUDA 5.K20。nsight eclipse edition

对于其他选项,如
-rdc
,您可以直接将它们添加到编译器设置的命令行中

在你看来

项目菜单->属性->构建->设置->工具设置->NVCC编译器

-rdc=true
附加到“命令”字符串或“命令行模式”字符串


您可能还需要将此选项附加到NVCC链接器命令。

对于其他选项,如
-rdc
,您可以直接将它们添加到编译器设置的命令行中

在你看来

项目菜单->属性->构建->设置->工具设置->NVCC编译器

-rdc=true
附加到“命令”字符串或“命令行模式”字符串


您可能还需要将此选项附加到NVCC链接器命令。

要在Nsight Eclipse Edition中启用单独编译:

  • 开放项目属性
  • 在左侧树中,选择“构建”/“CUDA”
  • 选择页面顶部的“单独编译”单选按钮
  • 清理项目并重建

  • 通过这种方式,Nsight将为编译器和链接器指定-rdc=true。

    要在Nsight Eclipse Edition中启用单独编译:

  • 开放项目属性
  • 在左侧树中,选择“构建”/“CUDA”
  • 选择页面顶部的“单独编译”单选按钮
  • 清理项目并重建

  • 通过这种方式,Nsight将为编译器和链接器指定-rdc=true。

    谢谢。.它构建正确,但现在它链接器显示错误。.未定义对“\uuuu cudaRegisterLinkedBinary\u39\utmpxft\u000023b3\u00000000\u6\ucpp1\uii\u51e07f2f”的引用。我根据nvidia手册向nvcc链接器添加了-lcudadevrt。谢谢。它构建正确,但现在它链接器显示错误。未定义对“cudaRegisterLinkedBinary”的引用。我根据nvidia手册向nvcc链接器添加了-lcudadevrt。开普勒不需要
    -rdc=true
    。您确实需要
    -arch=sm_35
    (适用于K20),但Nsight EE可以通过项目属性页为您自动设置
    -rdc=true
    对于某些类型的项目结构(库、增量编译等)是必需的,除了链接步骤中的
    -rdc=true
    之外,您还需要
    -dc
    而不是
    -c
    ,如果您有编译到对象的步骤。Nsight EE的项目类型也可以自动为您处理此问题,具体取决于您的项目类型。当我没有提到
    rdc=true
    类似于对缓冲区的未定义引用时,编译过程出错。是的,同意,但这是因为您的项目的结构方式。这不是开普勒K20的要求。我只有一个文件..没什么特别的..它仍然显示错误,程序是在nsight EE外部使用命令编译的,而不是在EE中。如果您仍然有问题,也许您应该发布一个简单、完整的示例代码来说明问题,以及设置nsight EE项目的步骤。如果整个程序只是一个文件,则不需要使用
    -rdc
    标志。您可能没有在Nsight EE中选择方便的项目类型。您也可以通过比较Nsight EE正在使用的compile命令行和您正在手动使用的有效命令行来解决这个问题。开普勒不需要
    -rdc=true
    。您确实需要
    -arch=sm_35
    (适用于K20),但Nsight EE可以通过项目属性页为您自动设置
    -rdc=true
    对于某些类型的项目结构(库、增量编译等)是必需的,除了链接步骤中的
    -rdc=true
    之外,您还需要
    -dc
    而不是
    -c
    ,如果您有编译到对象的步骤。Nsight EE的项目类型也可以自动为您处理此问题,具体取决于您的项目类型。当我没有提到
    rdc=true
    类似于对缓冲区的未定义引用时,编译过程出错。是的,同意,但这是因为您的项目的结构方式。这不是开普勒K20的要求。我只有一个文件..没什么特别的..它仍然显示错误,程序是在nsight EE外部使用命令编译的,而不是在EE中。如果您仍然有问题,也许您应该发布一个简单、完整的示例代码来说明问题,以及设置nsight EE项目的步骤。如果整个程序只是一个文件,则不需要使用
    -rdc
    标志。您可能没有在Nsight EE中选择方便的项目类型。您也可以通过比较Nsight EE使用的compile命令行和手动使用的有效命令行来解决这个问题。