Files
CUDANet/CMakeLists.txt
2024-03-18 20:37:13 +01:00

44 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.17)
project(CUDANet
LANGUAGES CXX CUDA
)
find_package(CUDAToolkit REQUIRED)
include_directories(${CUDAToolkit_INCLUDE_DIRS})
set(LIBRARY_SOURCES
src/utils/cuda_helper.cu
src/kernels/activation_functions.cu
src/kernels/convolution.cu
src/kernels/matmul.cu
src/layers/add.cu
src/layers/dense.cu
src/layers/conv2d.cu
src/layers/concat.cu
src/layers/input.cu
src/layers/activation.cu
)
set(CMAKE_CUDA_ARCHITECTURES 75)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -arch=sm_75)
# Build static library
add_library(${PROJECT_NAME} STATIC ${LIBRARY_SOURCES})
target_link_libraries(${PROJECT_NAME} CUDA::cudart)
# Set include directories for the library
target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/include/utils
${CMAKE_CURRENT_SOURCE_DIR}/include/kernels
${CMAKE_CURRENT_SOURCE_DIR}/include/layers
${CMAKE_CURRENT_SOURCE_DIR}/src
)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
# Add testing subdirectory
add_subdirectory(test)