gpt4 book ai didi

cuda - NVCC 使用 CMAKE 的 cuda_compile_ptx 编译为 ptx

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

我在文件 kernel.cu 中有简单的内核

__global__ void add1( double * pi, double c ) 
{
*pi += c;
}

并且可以轻松地将其编译为 ptx 文件 kernel.ptx :

nvcc -ptx kernel.cu



现在,我想使用带有以下 CMakeLists.txt 的 cmake 重现相同的行为:
cmake_minimum_required(VERSION 2.8)
project(cmake_ptx)
find_package(CUDA REQUIRED)
cuda_compile_ptx(
test
kernel.cu
)

但是当我打字的时候

cmake . && make



没有构建 ptx 文件。如何使用 cmake 重现上述 nvcc 命令的行为?特别是,如何:
  • 将 ptx 文件的独立编译添加到目标(例如全部) : 我注意到当同一个 CMakeFile 中有另一个 cuda_add_executable 时,它​​也会构建 ptx 文件,否则不会。
  • 将文件命名为源文件 但使用 .ptx 而不是 .cu 结尾:
    与这个问题相关:
    How do I change the output filename of cuda_compile_ptx in CMake?
  • 最佳答案

    cuda_compile_ptx只创建规则来生成文件,但不会将它们添加到任何目标。您需要添加自定义目标,这取决于 ptx 文件:

    cmake_minimum_required(VERSION 2.8)
    project(cmake_ptx)
    find_package(CUDA REQUIRED)
    cuda_compile_ptx(
    cuda_ptx_files
    kernel.cu
    )
    add_custom_target(ptx ALL
    DEPENDS ${cuda_ptx_files} kernel.cu
    SOURCES kernel.cu)

    现在,如果您运行 makemake ptx ,它将生成 ptx 文件。

    关于cuda - NVCC 使用 CMAKE 的 cuda_compile_ptx 编译为 ptx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198294/

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