我在文件kernel.cu簡單的內核PTXNVCC編譯使用cmake的cuda_compile_ptx
__global__ void add1(double * pi, double c)
{
*pi += c;
}
,並可以很容易地把它編譯成一個PTX文件kernel.ptx:
NVCC -ptx kernel.cu
現在,我想重現使用cmake具有以下的CMakeLists.txt相同的行爲:
cmake_minimum_required(VERSION 2.8)
project(cmake_ptx)
find_package(CUDA REQUIRED)
cuda_compile_ptx(
test
kernel.cu
)
但是當我鍵入
cmake的。 & & make
沒有建立ptx文件。如何使用cmake重現上述nvcc命令的行爲?特別是,如何:
的PTX文件獨立編譯添加到目標(例如,所有):我注意到,當有相同CMakeFile內的另一個cuda_add_executable,它也建立了PTX文件,否則不。
名稱,如源文件的文件但.ptx代替.CU結束: 與此相關的問題: How do I change the output filename of cuda_compile_ptx in CMake?
很大,這樣的作品,但它給了我一個叫 '銅文件da_compile_ptx_generated_kernel.cu.ptx'由於FindCUDA中的這一行:(請參見[線程](http://stackoverflow.com/questions/10135795/how-do-i-change-the-output-filename-of-cuda-compile -ptx-in-cmake)我上面提到) 'set(generated_file_basename「$ {cuda_target} _generated _ $ {basename} .ptx」)' 因爲我不明白如何破解FindCUDA文件只是使用我的CMakeList,有沒有辦法將存儲在$ {cuda_ptx_files}中的輸出重命名爲使用CMake的格式? – adrelino 2014-10-05 08:33:48
您可以使用'add_custom_command'命名它:'add_custom_command(OUTPUT $ {CMAKE_BINARY_DIR}/my_ptx。ptx COMMAND $ {CMAKE_COMMAND} -E複製$ {cuda_ptx_files} $ {CMAKE_BINARY_DIR} /my_ptx.ptx DEPENDS $ {cuda_ptx_files})'並在'add_custom_target'中使用'$ {CMAKE_BINARY_DIR}/my_ptx.ptx'。 – jet47 2014-10-05 09:12:03
謝謝你,那曾經工作過 – adrelino 2014-10-05 18:26:08