2012-04-13 10 views
5

W CMAKE z FindCUDA, dla pliku wejściowego filename.cu, komenda cuda_compile_ptx generuje wyjściowe nazwy plików o postaci cuda_compile_ptx_generated_filename.cu.ptx, ale potrzebuję wyjściowych nazw plików, aby miały one postać filename.ptx.Jak zmienić wyjściową nazwę pliku cuda_compile_ptx w CMake?

Czy istnieje prosty sposób, aby to zadziałało?

+2

Myślę, że jedyny sposób, aby to zrobić, to zhakować makro cuda_wrap_srcs, czyli. w następującej linii: zestaw (nazwa_pliku_produkowanego "$ {cuda_target} _generated _ $ {basename} .ptx") –

Odpowiedz

3

Idealnie powinieneś być w stanie określić -o <outputName>. Jednak problemem jest to, że CUDA_COMPILE_PTX makro faktycznie zastępuje opcję -o z cuda_compile_ptx_generated_${filename}.ptx

Oto dwa alternatywne sposoby dodać CUDA kompilację do projektu

  1. Można nadal używać CUDA_COMPILE_PTX ale obejść ten problem przez zmianę jego nazwy z 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}) i użyj ${CMAKE_BINARY_DIR}/my_ptx.ptx w add_custom_target
  2. Istnieją lepsze alternatywy dla kompilowania CX PTX z CMake. Jeden bardzo dobry przykład makro zrobić: https://github.com/nvpro-samples/shared_sources/blob/master/cmake/private/FindCuda.cmake. Przykład użycia tego makra można znaleźć tutaj: https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st/blob/master/CMakeLists.txt.
Powiązane problemy