Newer
Older
project(hpvm CXX)
include(CheckLanguage)
check_language(CUDA)
if(CMAKE_CUDA_COMPILER)
# Enable CUDA
set(HPVM_USE_CUDA 1)
enable_language(CUDA)
get_filename_component(
CUDA_TOOLKIT_ROOT_DIR "${CMAKE_CUDA_COMPILER}/../.." ABSOLUTE
) # Set CUDA_TOOLKIT_ROOT_DIR by our own, to the parent folder of cuda nvcc
message(STATUS "CUDA Architecture: ${CMAKE_CUDA_ARCHITECTURES}")
# find_package will use the auxillary cmake/Find*.cmake we provide
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(CUDNN 7 EXACT REQUIRED) # CUDNN_INCLUDE_PATH, CUDNN_LIBRARY_DIR and CUDNN::cudnn
else()
set(HPVM_USE_CUDA 0)
message(WARNING "CUDA is not found in this system; all ApproxHPVM features will be unavailable.")
endif()
find_package(OpenCL) # Defines ${OpenCL_INCLUDE_DIRS} and ${OpenCL_LIBRARY}
if(${OpenCL_FOUND})
set(HPVM_USE_OPENCL 1)
else()
message(WARNING "OpenCL not found. --opencl flag of hpvm-clang will be unavailable for this build.")
set(HPVM_USE_OPENCL 0)
endif()
include_directories(./include/)
Yifan Zhao
committed
# Generate TENSOR_RT_PREFIX into config.h
set(TENSOR_RT_PREFIX ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
set(TENSOR_RT_LL ${TENSOR_RT_PREFIX}/tensor_runtime.ll)
configure_file(
./include/Config.h.in
${CMAKE_CURRENT_BINARY_DIR}/Config.h
)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(test)
# Add a global check rule now that all subdirectories have been traversed
# and we know the total set of lit testsuites.
get_property(LLVM_LIT_TESTSUITES GLOBAL PROPERTY LLVM_LIT_TESTSUITES)
get_property(LLVM_LIT_PARAMS GLOBAL PROPERTY LLVM_LIT_PARAMS)
get_property(LLVM_LIT_DEPENDS GLOBAL PROPERTY LLVM_LIT_DEPENDS)
get_property(LLVM_LIT_EXTRA_ARGS GLOBAL PROPERTY LLVM_LIT_EXTRA_ARGS)
get_property(LLVM_ADDITIONAL_TEST_TARGETS
GLOBAL PROPERTY LLVM_ADDITIONAL_TEST_TARGETS)
add_lit_target(hpmv-check-all
"Running all regression tests"
${LLVM_LIT_TESTSUITES}
PARAMS ${LLVM_LIT_PARAMS}
DEPENDS ${LLVM_LIT_DEPENDS} ${LLVM_ADDITIONAL_TEST_TARGETS}
ARGS ${LLVM_LIT_EXTRA_ARGS}
)