【问题标题】:How do I change the output filename of cuda_compile_ptx in CMake?如何在 CMake 中更改 cuda_compile_ptx 的输出文件名?
【发布时间】:2016-02-28 12:31:11
【问题描述】:

在带有 FindCUDA 的 CMAKE 中,给定输入文件 filename.cu,cuda_compile_ptx 命令会生成 cuda_compile_ptx_generated_filename.cu.ptx 形式的输出文件名,但我需要输出文件名的形式为 filename.ptx。

有没有简单的方法来完成这项工作?

【问题讨论】:

  • 我认为这样做的唯一方法是破解 cuda_wrap_srcs 宏,即。在以下行中: set(generated_file_basename "${cuda_target}_generated_${basename}.ptx")

标签: cuda cmake


【解决方案1】:

理想情况下,您应该能够指定-o <outputName>。然而问题是CUDA_COMPILE_PTX 宏实际上用cuda_compile_ptx_generated_${filename}.ptx 覆盖了-o 选项

这里有两种替代方法将 CUDA 编译添加到您的项目中

  1. 您仍然可以使用CUDA_COMPILE_PTX,但可以通过将其重命名为add_custom_command 来解决此问题:add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/my_ptx.ptx COMMAND ${CMAKE_COMMAND} -E copy ${cuda_ptx_files} ${CMAKE_BINARY_DIR}/my_ptx.ptx DEPENDS ${cuda_ptx_files}) 并在add_custom_target 中使用${CMAKE_BINARY_DIR}/my_ptx.ptx
  2. 使用 CMake 编译 CUDA PTX 有更好的替代方法。一个非常好的宏示例:https://github.com/nvpro-samples/shared_sources/blob/master/cmake/private/FindCuda.cmake。可以在此处找到如何使用此宏的示例:https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st/blob/master/CMakeLists.txt。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 2016-10-24
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2017-12-22
    相关资源
    最近更新 更多