【问题标题】:cuda nsight: generating debug symbolics: -G0cuda nsight:生成调试符号:-G0
【发布时间】:2014-11-20 05:00:36
【问题描述】:

我已经在 windows 7 上下载并安装了 CUDA 6.5 和 Visual Studio 2010。

假设我从 SDK (visual studio 2010) 构建了一个示例 CUDA 代码。

我如何知道我正在使用哪个编译器?

另外,我如何确保我用来编译我的 CUDA C 的 CUDA 工具包 代码必须支持以下开关以生成调试符号:-G0

这在here被提及并在下面引用:

CUDA Toolkit:为了使用带有 NVIDIA Nsight 工具的项目, 我们建议您使用工具附带的编译器。这 此版本编译器的默认安装目录为:

C:\Program Files\NVIDIA GPU 计算工具包\CUDA

编译器位于由其版本标记的子目录中,例如: ...\\bin\nvcc.exe

NVIDIA Nsight 工具最适合与此版本的编译器配合使用。 但是,这些工具也适用于标准工具包。任何 您使用的编译器,用于编译 CUDA C 的 CUDA 工具包 代码必须支持以下开关以生成调试符号: -G0

【问题讨论】:

    标签: visual-studio-2010 cuda nsight


    【解决方案1】:

    您引用的注释是旧的,应该更新。

    Visual Studio C++ 构建系统通过在 vcxproj 中包含一个 CUDA 道具文件进行了扩展以支持 CUDA。例如,在 6.5 示例中,您应该找到这些部分

    <PropertyGroup>
        <CUDAPropsPath Condition="'$(CUDAPropsPath)'==''">$(VCTargetsPath)\BuildCustomizations</CUDAPropsPath>
    </PropertyGroup>
    
    <ImportGroup Label="ExtensionSettings">
        <Import Project="$(CUDAPropsPath)\CUDA 6.5.props" />
    </ImportGroup>
    
    <ImportGroup Label="ExtensionTargets">
        <Import Project="$(CUDAPropsPath)\CUDA 6.5.targets" />
    </ImportGroup>
    

    VCTargetsPath 的默认位置是

    c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0[VSver]\BuildCustomizations

    如果您打开“CUDA 6.5.props”文件,您可以看到工具包的位置是如何确定的。

    <PropertyGroup>
        <!-- Check CUDA Toolkit versioned environment variable. -->
        <CudaToolkitDir Condition="'$(CudaToolkitDir)' == ''">$(CUDA_PATH_V6_5)</CudaToolkitDir>
    
        <!-- Last, check the new CUDA Toolkit style/Nsight toolkit registry value. -->
        <CudaToolkitDir Condition="'$(CudaToolkitDir)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\GPU Computing Toolkit\Cuda\$(CudaToolkitVersion)', 'InstallDir', null, RegistryView.Registry64, RegistryView.Registry32))</CudaToolkitDir>
    
        <!-- Ensure $(CudaToolkitDir) has a trailing backslash. -->
        <CudaToolkitDir Condition="'$(CudaToolkitDir)' != '' AND !HasTrailingSlash('$(CudaToolkitDir)')">$(CudaToolkitDir)\</CudaToolkitDir>
    
        <CudaToolkitIncludeDir Condition="'$(CudaToolkitIncludeDir)' == ''">$(CudaToolkitDir)include</CudaToolkitIncludeDir>
    </PropertyGroup>
    

    在 VXCPROJ 中切换工具包

    在 vcxproj 中修改 CUDA .{props, targets} 行中的版本号并重新加载项目。

    在 VS 中切换工具包

    在 Visual Studio 中打开解决方案资源管理器。 在解决方案资源管理器中右键单击项目节点并执行“构建自定义” 在 Visual C++ Build Customization Files 中检查正确的目标。

    覆盖工具包位置

    如果您有一个未使用安装程序安装的 CUDA 工具包版本,您可以覆盖默认位置

    一个。设置工具包环境变量。例如,设置 CUDA_PATH_V6_5,或者

    b.覆盖 vcxproj 中 CudaToolkitDir 的设置,或

    c。在 VS 的属性页中为项目更改 CUDA C/C++ | CUDA Toolkit 自定义目录。

    【讨论】:

    • 非常感谢您提供的宝贵信息。由于我是视觉工作室的新手,我仍然无法理解。我在哪里看到 -G0 选项。请修改您的答案以包含这一点。
    猜你喜欢
    • 2011-12-09
    • 2016-12-31
    • 1970-01-01
    • 2013-12-13
    • 2012-11-05
    • 2011-10-05
    • 1970-01-01
    • 2021-11-20
    • 2014-11-14
    相关资源
    最近更新 更多