如何在CMake中更改cuda_compile_ptx的输出文件名?

har*_*ism 6 cuda cmake

在带有FindCUDA的CMAKE中,给定一个输入文件filename.cu,该cuda_compile_ptx命令生成表单cuda_compile_ptx_generated_filename.cu.ptx的输出文件名,但我需要输出文件名为表单filename.ptx.

是否有一种简单的方法可以使这项工作?

ds-*_*msk 2

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

以下是将 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})并使用${CMAKE_BINARY_DIR}/my_ptx.ptxin来解决该问题add_custom_target
  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