gpt4 book ai didi

cmake - 库达 CMake 3.10 CMakeLists.txt

转载 作者:行者123 更新时间:2023-12-01 08:54:56 24 4
gpt4 key购买 nike

我有一个创建 dll 的 Visual C++ 项目。对于这个项目,我有一个有效的 CMakeLists.txt。

现在我创建了两个 cuda 源文件来完成项目和使用 visual studio,构建工作正常。我想将匹配的命令添加到我的 cmake 文件中。谁能告诉我需要添加的基本命令?

我尝试在我使用 .cu 和 .cpp 文件的地方构建一个 dll 库....我的 cmake 文件的重要部分如下所示:

# ----------------------------------------------------------------------------
# Set Cuda properties
# ----------------------------------------------------------------------------
enable_language(CUDA)
set(CUDA_SEPARABLE_COMPILATION ON)
set(CUDA_PROPAGATE_HOST_FLAGS OFF)
if (CMAKE_SIZEOF_VOID_P MATCHES 8)
set(CUDA_64_BIT_DEVICE_CODE_DEFAULT ON)
endif()
set(CUDA_NVCC_FLAGS "-gencode arch=compute_50,code=sm_50;-rdc=true;-use_fast_math")

message(STATUS "CUDA_PROPAGATE_HOST_FLAGS: ${CUDA_PROPAGATE_HOST_FLAGS}")
message(STATUS "CUDA_HOST_COMPILER: ${CUDA_HOST_COMPILER}")
message(STATUS "CUDA_NVCC_FLAGS: ${CUDA_NVCC_FLAGS}")

# ----------------------------------------------------------------------------
# Create shared library project
# ----------------------------------------------------------------------------
add_library(${LIB_NAME} SHARED ${HEADERS} ${SOURCES} ${CUDA_SOURCES})
set(CUDA_LIBRARIES "cudadevrt.lib;cudart.lib")
target_link_libraries(${LIB_NAME} ${CUDA_LIBRARIES})

但它不会使用正确的标志编译 cuda 文件。同样在 visual studio 中,预处理器定义也在属性的 cuda 部分中......有什么建议吗?

最佳答案

我将尝试使用评论中的讨论来回答这个问题,并添加一些额外的信息。

首先,在CMake中开启CUDA支持有两种方式。一个是老 FindCUDA module ,还有一个是CMake 3.8新增的内置CUDA语言支持,解释here .您可以选择其中之一(但您可能希望对新项目使用内置支持),但您必须坚持您的选择。

要使用内置支持,您可以将其添加到 project(...)声明或使用:

enable_language(CUDA);

使用旧的FindCUDA包,你会使用:

find_package(CUDA);

请注意,这两个选项使用完全不同的变量 进行设置。查看 FindCUDA 支持哪些变量见this page , 对于内置的 CUDA 支持,请参阅 this (不要忘记 <LANG> 占位符可以用任何语言替换,这意味着 CUDA 也是可用的替换项之一)。

例如与 FindCUDA你会用 CUDA_NVCC_FLAGS手动设置编译器标志,并使用内置语言支持 CMAKE_CUDA_FLAGS为了同样的目的。根据经验:如果变量以 CUDA_ 开头它是 FindCUDA 的一部分包,如果它以 CMAKE_ 开头, 那么它就是内置支持的一部分。

关于cmake - 库达 CMake 3.10 CMakeLists.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49767485/

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