CUDA 5 NSIGHT set编译标志
为了编译开普勒K20的项目,我们需要设置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,您可以直接将它们添加到编译器
-rdc=true
标志。如何在nsight eclipse版本中设置此标志?我的版本是CUDA 5.K20。nsight eclipse edition对于其他选项,如-rdc
,您可以直接将它们添加到编译器设置的命令行中
在你看来
项目菜单->属性->构建->设置->工具设置->NVCC编译器
将-rdc=true
附加到“命令”字符串或“命令行模式”字符串
您可能还需要将此选项附加到NVCC链接器命令。对于其他选项,如
-rdc
,您可以直接将它们添加到编译器设置的命令行中
在你看来
项目菜单->属性->构建->设置->工具设置->NVCC编译器
将-rdc=true
附加到“命令”字符串或“命令行模式”字符串
您可能还需要将此选项附加到NVCC链接器命令。要在Nsight Eclipse Edition中启用单独编译:
通过这种方式,Nsight将为编译器和链接器指定-rdc=true。要在Nsight Eclipse Edition中启用单独编译:
通过这种方式,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命令行和手动使用的有效命令行来解决这个问题。