Я знаю, как использовать cmake для компиляции файла C ++ с функцией cuda, такой как cublas.Однако в моем проекте есть функция ядра, которую я пишу сам.Я вижу, что компилятор g ++ не знает, как обращаться с ядром <<<, >>>.Не могли бы вы помочь мне решить эту проблему?Ниже приведены списки CMakeList, которые я использовал для компиляции файлов C ++ с помощью cublas.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
cmake_minimum_required(VERSION 3.0)
project(GPU_LMM)
find_package(GSL REQUIRED)
find_package(BLAS REQUIRED)
find_package(CUDA)
if (CUDA_FOUND)
message("CUDA found")
else()
message("CUDA not found, doing something alternatively")
endif()
include_directories(test_cuda PRIVARE
${GSL_INCLUDE_DIRS}
${BLAS_INCLUDE_DIRS}
${CUDA_INCLUDE_DIRS}
${CUDA_CUBLAS_DIRS}
${PROJECT_SOURCE_DIR})
add_executable(GPU_LMM main.cpp aux.cpp)
target_link_libraries( GPU_LMM PRIVATE
${GSL_LIBRARY}
${BLAS_LIBRARIES}
${CUDA_LIBRARIES}
${CUDA_CUBLAS_LIBRARIES})
У меня есть три файла для компиляции, как показано ниже.
main.cpp aux.cpp aux.hpp
Файл aux.cpp содержит функцию ядра cuda.Спасибо всем!