我已经使用visual studio 2010在Windows 7上下载并安装了CUDA 6.5。
我们假设我从SDK(visual studio 2010)构建了一个示例CUDA代码。
我如何知道我使用的是哪个编译器?
另外,我如何确保我用来编译CUDA C的CUDA工具包 代码必须支持以下用于生成调试符号的开关:-G0
提到here并引用如下:
CUDA工具包:为了使用NVIDIA Nsight工具的项目, 我们建议您使用工具附带的编译器。该 此版本编译器的默认安装目录为:
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA
编译器位于由其版本标记的子目录中,例如: ... \\ BIN \ nvcc.exe
NVIDIA Nsight工具在此版本的编译器中效果最佳。 但是,这些工具也适用于标准工具包。任何 您使用的编译器,用于编译CUDA C的CUDA工具包 代码必须支持以下开关以生成调试符号: -G0
答案 0 :(得分:2)
您引用的注释已过时,应该更新。
Visual Studio C ++构建系统通过在vcxproj中包含CUDA props文件而扩展为支持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
如果你打开&#34; CUDA 6.5.props&#34;文件,你可以看到如何确定工具包的位置。
<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中打开解决方案资源管理器。 在Solution Explorer中,右键单击项目节点并执行&#34; Build Customization&#34; 在Visual C ++生成自定义文件中,检查正确的目标。
覆盖工具包位置
如果您有使用安装程序未安装的CUDA工具包版本,则可以通过
覆盖默认位置一个。设置工具包环境变量。例如,设置CUDA_PATH_V6_5或
湾覆盖vcxproj中的CudaToolkitDir设置,或
℃。在VS的项目属性页面中更改CUDA C / C ++ | CUDA Toolkit Custom Dir。