117 lines
3.9 KiB
CMake
117 lines
3.9 KiB
CMake
# example of how to use dynasty
|
|
# author: Kneron SW Team
|
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
project(dynasty-consumer)
|
|
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release")
|
|
endif ()
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0 -fopenmp")
|
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
option(DISABLE_CUDA "DISABLE CUDA RELATED CODE(THIS IS NEEDED IN A CUDA ENV)" OFF)
|
|
find_package(OpenBLAS)
|
|
|
|
IF(NOT DISABLE_CUDA)
|
|
find_package(CUDA QUIET)
|
|
ENDIF()
|
|
|
|
set(MSFT_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib/libonnxruntime.so.1.16.3)
|
|
set(MSFT_GPU_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib/libonnxruntime.so.1.16.3
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lib/libonnxruntime_providers_shared.so ${CMAKE_CURRENT_SOURCE_DIR}/lib/libonnxruntime_providers_cuda.so)
|
|
|
|
set(other_libs
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libpiano.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libjsoncpp.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libprotobuf.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libzip.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libcrypto.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libmystery_sdk.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libspdlog.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libfmt.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libkplus.a"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/lib/libz.a"
|
|
atomic dl
|
|
)
|
|
|
|
IF(OpenBLAS_FOUND)
|
|
set(other_libs ${other_libs} ${OpenBLAS_LIB})
|
|
ENDIF()
|
|
|
|
IF(CUDA_FOUND)
|
|
set(other_libs ${other_libs} ${CUDA_LIBRARIES} ${MSFT_GPU_LIB})
|
|
ELSE()
|
|
set(other_libs ${other_libs} ${MSFT_LIB})
|
|
ENDIF()
|
|
|
|
find_library(USB_LIB NAMES usb-1.0 libusb-1.0)
|
|
|
|
# CsimExample
|
|
add_executable(csim-example example/csim_example.cpp)
|
|
target_include_directories(csim-example PUBLIC include)
|
|
|
|
add_executable(cexample example/csim_example.c)
|
|
target_include_directories(cexample PUBLIC include)
|
|
|
|
IF(OpenBLAS_FOUND)
|
|
target_link_libraries(csim-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
${OpenBLAS_LIB}
|
|
)
|
|
target_link_libraries(cexample ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
${OpenBLAS_LIB} stdc++ m
|
|
)
|
|
ELSE()
|
|
target_link_libraries(csim-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
)
|
|
target_link_libraries(cexample ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a stdc++ m
|
|
)
|
|
ENDIF()
|
|
|
|
|
|
|
|
# Kplus example
|
|
add_executable(kplus-example example/kplus_example.cpp)
|
|
target_include_directories(kplus-example PUBLIC include)
|
|
target_link_libraries(kplus-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libinferencer_lib.a
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
${other_libs} ${USB_LIB}
|
|
)
|
|
|
|
|
|
# msft example
|
|
add_executable(msft-example example/msft_example.cpp)
|
|
target_include_directories(msft-example PUBLIC include)
|
|
target_link_libraries(msft-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libinferencer_lib.a
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
${other_libs})
|
|
|
|
|
|
# msft-gpu example
|
|
IF(CUDA_FOUND)
|
|
add_executable(msft-gpu-example example/msft_gpu_example.cpp)
|
|
target_include_directories(msft-gpu-example PUBLIC include)
|
|
target_link_libraries(msft-gpu-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libinferencer_lib.a
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a
|
|
${other_libs})
|
|
ENDIF ()
|
|
|
|
# cpu example
|
|
add_executable(cpu-example example/cpu_example.cpp example/mystery.c)
|
|
target_include_directories(cpu-example PUBLIC include)
|
|
target_link_libraries(cpu-example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libinferencer_lib.a ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a ${other_libs})
|
|
|
|
# build mystery lib
|
|
add_library(mystery_sdk example/mystery.c)
|
|
target_include_directories(mystery_sdk PUBLIC include)
|
|
|
|
|
|
add_executable(fixpoint_example example/fixpoint_example.cpp)
|
|
target_include_directories(fixpoint_example PUBLIC include ${other_headers})
|
|
target_link_libraries(fixpoint_example ${CMAKE_CURRENT_SOURCE_DIR}/lib/libinferencer_lib.a ${CMAKE_CURRENT_SOURCE_DIR}/lib/libcpu_op.a ${other_libs})
|
|
|