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

时间:2012-04-13 05:40:49

标签: cuda cmake

在使用FindCUDA的CMAKE中,给定输入文件filename.cucuda_compile_ptx命令生成cuda_compile_ptx_generated_filename.cu.ptx形式的输出文件名,但我需要输出文件名的格式为{{ 1}}。

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

1 个答案:

答案 0 :(得分:3)

理想情况下,您应该能够指定-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.ptx
  2. 中的add_custom_target来解决此问题
  3. 使用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