gpt4 book ai didi

cmake - 如何在 CMAKE 中将标志传递给 nvcc 编译器

转载 作者:行者123 更新时间:2023-12-03 16:29:45 28 4
gpt4 key购买 nike

我在 Cmake 中有一个 C 项目我在其中嵌入了cuda内核模块。

我要通过--ptxas-options=-v仅限 nvcc为了查看
每个线程使用的寄存器数量和
每个 block 的共享内存使用情况。

通过搜索如何将标志传递给 nvccCmake ,我遇到了一个解决方案

add_compile_options(myprog
PRIVATE
$<$<COMPILE_LANGUAGE:C>:-Wall>
$<$<COMPILE_LANGUAGE:CUDA>:-arch=sm_20 -ptxas-options=-v>
)

但这并没有向我显示上述属性。我认为这些标志没有传递给 nvcc适本地。

我怎样才能通过 --ptxas-options=-v给我的 nvcc编译器?

最佳答案

设置 CUDA 标志的正确方法 仅针对目标

target_compile_options(<my_target> PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:my_cuda_option>) 

这将通过生成器表达式设置选项,仅用于为 CUDA 语言编译的文件。

使用 CMAKE_CUDA_FLAGS正如其他答案所建议的那样,为所有目标设置了一个全局属性,这可能是也可能不是正确的方法,具体取决于用例。

关于cmake - 如何在 CMAKE 中将标志传递给 nvcc 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53256405/

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