6

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

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

4

1 回答 1

3

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

这是将 CUDA 编译添加到项目的两种替代方法

  1. 您仍然可以使用,但可以通过将其重命名为:并使用inCUDA_COMPILE_PTX来解决此问题add_custom_commandadd_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.ptxadd_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 。
于 2016-02-28T04:31:11.353 回答