사용 PTX하는 컴파일NVCC 내가 파일 kernel.cu에서 간단한 커널을 CMAKE의 cuda_compile_ptx
__global__ void add1(double * pi, double c)
{
*pi += c;
}
쉽게와 PTX 파일 kernel.ptx로 컴파일 할 수
NVCC -ptx
: kernel.cu
지금, 나는 다음 CMakeLists.txt으로 cmake를 사용하여 동일한 동작을 재현하고 싶어
cmake_minimum_required(VERSION 2.8)
project(cmake_ptx)
find_package(CUDA REQUIRED)
cuda_compile_ptx(
test
kernel.cu
)
하지만 난
cmake를 입력 할 때. & & make
ptx 파일이 없습니다. cmake를 사용하여 위의 nvcc 명령의 동작을 어떻게 재현 할 수 있습니까? 특히, 방법 : 나도 같은 CMakeFile 안에 다른 cuda_add_executable있을 때, 그것은 또한 PTX 파일을 빌드 것으로 나타났습니다 :
(예 : 모든) 대상에 PTX 파일의 독립 컴파일을 추가 그렇지 않은 경우.
이름 소스 파일과 같은 파일 대신 .CU 결말의 .ptx과 : 이 질문에 관련된 : How do I change the output filename of cuda_compile_ptx in CMake?
큰 포함하지만, 그것은 나에게 '세제곱라는 파일을 제공합니다 da_compile_ptx_generated_kernel.cu.ptx' 때문에 FindCUDA에서 다음 줄을 볼 수 있습니다. ([thread] (http://stackoverflow.com/questions/10135795/how-do-i-change-the-output-filename-of-cuda-compile 참조) 내가 CMakeList를 사용하여 FindCUDA 파일을 해킹하는 법을 이해하지 못하기 때문에 'set (generated_file_basename "$ {cuda_target} _generated _ $ {basename} .ptx")' $ {cuda_ptx_files}에 저장된 출력의 이름을 CMake를 사용하여 원하는 형식으로 바꿀 수 있습니까? – adrelino
'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}')'add_custom_target'에서'$ {CMAKE_BINARY_DIR}/my_ptx.ptx'를 사용하십시오. – jet47
고맙습니다. – adrelino