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コンパイルを追加する2つの代替方法があります

  1. 引き続き使用できますが、名前を:CUDA_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を使用してCUDAPTXをコンパイルするためのより良い代替手段があります。マクロの非常に良い例の1つは、これを実行します: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 に答える