33 lines
2.1 KiB
CMake
33 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.25)
|
|
foreach(app altai_infer altai_objects bench_conv)
|
|
add_executable(${app} ${app}.cpp)
|
|
target_compile_features(${app} PRIVATE cxx_std_17)
|
|
target_link_libraries(${app} PRIVATE KNP::BaseFramework::Core)
|
|
endforeach()
|
|
|
|
option(KNP_BUILD_ALTAI_CUDA "Build restricted AltAI/Delta CUDA inference backend using NVRTC" OFF)
|
|
if(KNP_BUILD_ALTAI_CUDA)
|
|
file(GLOB cuda_python_roots "$ENV{HOME}/anvenv/lib/python*/site-packages/nvidia")
|
|
list(GET cuda_python_roots 0 cuda_python_default)
|
|
set(KNP_CUDA_PYTHON_ROOT "${cuda_python_default}" CACHE PATH "NVIDIA CUDA Python package root")
|
|
find_path(KNP_CUDA_INCLUDE cuda.h HINTS "${KNP_CUDA_PYTHON_ROOT}/cuda_runtime/include" REQUIRED)
|
|
find_path(KNP_NVRTC_INCLUDE nvrtc.h HINTS "${KNP_CUDA_PYTHON_ROOT}/cuda_nvrtc/include" REQUIRED)
|
|
find_file(KNP_NVRTC_LIBRARY NAMES libnvrtc.so.12 libnvrtc.so HINTS "${KNP_CUDA_PYTHON_ROOT}/cuda_nvrtc/lib" REQUIRED)
|
|
find_library(KNP_DRIVER_LIBRARY NAMES cuda REQUIRED)
|
|
add_library(knp-altai-cuda-backend SHARED gpu/altai_cuda_backend.cpp)
|
|
target_compile_features(knp-altai-cuda-backend PRIVATE cxx_std_17)
|
|
target_include_directories(knp-altai-cuda-backend PRIVATE ${KNP_CUDA_INCLUDE} ${KNP_NVRTC_INCLUDE})
|
|
target_link_libraries(knp-altai-cuda-backend PRIVATE KNP::Backends::CPUSingleThreaded ${KNP_NVRTC_LIBRARY} ${KNP_DRIVER_LIBRARY})
|
|
set_target_properties(knp-altai-cuda-backend PROPERTIES BUILD_RPATH "${KNP_CUDA_PYTHON_ROOT}/cuda_nvrtc/lib;${CMAKE_BINARY_DIR}/bin")
|
|
add_executable(altai_cuda_probe gpu/cuda_probe.cpp)
|
|
target_compile_features(altai_cuda_probe PRIVATE cxx_std_17)
|
|
target_include_directories(altai_cuda_probe PRIVATE ${KNP_CUDA_INCLUDE} ${KNP_NVRTC_INCLUDE})
|
|
target_link_libraries(altai_cuda_probe PRIVATE ${KNP_NVRTC_LIBRARY} ${KNP_DRIVER_LIBRARY})
|
|
set_target_properties(altai_cuda_probe PROPERTIES BUILD_RPATH "${KNP_CUDA_PYTHON_ROOT}/cuda_nvrtc/lib")
|
|
endif()
|
|
|
|
if(KNP_BUILD_ALTAI_CUDA)
|
|
add_executable(altai_cuda_parity gpu/cuda_parity.cpp)
|
|
target_compile_features(altai_cuda_parity PRIVATE cxx_std_17)
|
|
target_link_libraries(altai_cuda_parity PRIVATE KNP::BaseFramework::Core)
|
|
endif()
|