gpt4 book ai didi

visual-studio - 配置 CMake 以在 Windows 上设置 CUDA

转载 作者:行者123 更新时间:2023-12-04 20:21:39 26 4
gpt4 key购买 nike

我正在尝试使用 CMake 在 Windows (Visual Studio 2005) 上编译基于 CUDA 的应用程序。这是一个剥离 CMake 文件的示例:

cmake_minimum_required (VERSION 2.6)
project (HELLO)

#Support for CUDA Integration
FIND_PACKAGE(CUDA)
if(CUDA_FOUND)
SET(CUDA_NVCC_FLAGS "-arch;sm_13")
CUDA_ADD_EXECUTABLE(Hello hello.cu)
else(CUDA_FOUND)
message("CUDA is not installed on this system.")
endif()

有几个问题我想了解一下。

当我打开解决方案文件 (Hello.sln) 时,我没有看到项目的任何自定义构建规则设置(右键单击项目 -> 自定义构建规则)

我确实在 Visual Studio 中看到我的项目中添加了“Hello_generated_hello.cu.obj”。这个文件是什么,为什么将它添加到项目中?

默认情况下,项目属性中没有 CUDA 运行时 API 部分。

如果我启用了适当的自定义构建规则 (NvCudaRuntimeApi.rules),我现在可以看到 CUDA 运行时 API 部分。如果我现在转到 GPU 小节,我会看到 GPU 架构仍设置为 sm_10。

即使我使用 CUDA_INCLUDE_DIRECTORIES() 宏为 CUDA 编译添加一些目录,我也不会在 Project Properties -> CUDA Runtime API -> General -> Additional Include Directories 中看到这些设置。

我想知道 FindCUDA() 包是否非常能够为基于 CUDA 的编译正确配置 VS 2005 项目。可能我需要指定其他选项来正确配置项目。我当然想知道。我希望确保我通过 CMakeLists 文件指定的任何选项,我都应该能够在我生成的 VS 2005 项目中轻松查看它们。

什么是配置它的合适方法?

最佳答案

CMake 不支持自定义构建规则(如 CUDA 运行时 API .rules 文件),因此如果您使用 CMake 配置项目,则无法编辑 .rules 文件提供的 CUDA 属性表。但是,您可以直接在生成项目的 CMakeLists.txt 中设置任何 CUDA 设置,重建项目将检测这些更改并自动重新生成和重新加载项目文件。

FindCUDA 的另一个好处(除了跨平台)是适当的依赖项分析,因此您永远不会像在 Visual Studio 中使用 CUDA .cu 文件(带或不带 .rules 文件)时通常那样以陈旧的构建结束。

您可以在以下文件中的 CUDPP 项目中找到将 CMake 与 CUDA 结合使用的示例:

  • 整个库和示例应用程序的顶级 CMakeLists:
    http://code.google.com/p/cudpp/source/browse/trunk/CMakeLists.txt
  • 库的特定于项目的 CMakeLists 文件:http://code.google.com/p/cudpp/source/browse/trunk/src/cudpp/CMakeLists.txt
  • 可执行文件的特定于项目的 CMakeLists 文件:http://code.google.com/p/cudpp/source/browse/trunk/apps/simpleCUDPP/CMakeLists.txt

  • 希望有帮助。

    关于visual-studio - 配置 CMake 以在 Windows 上设置 CUDA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5856929/

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