qmcpack/external_codes/boost_multi/multi/benchmark/CMakeLists.txt

63 lines
2.2 KiB
CMake

# CXX=g++-9 cmake .. -D CMAKE_BUILD_TYPE=Release -D CMAKE_CUDA_HOST_COMPILER=g++-9
cmake_minimum_required(VERSION 3.10)
project(
boost-multi-benchmark
VERSION 0.1
LANGUAGES CXX
)
find_package(Boost REQUIRED COMPONENTS serialization unit_test_framework system iostreams)
find_package(benchmark REQUIRED)
set(BLA_VENDOR Intel10_64lp) # . /opt/intel/oneapi/mkl/latest/env/vars.sh
find_package(BLAS)
if(BLAS_FOUND) # in some systems with MKL, regular BLAS headers need to be found for it to work
message("Multi/BLAS: MKL environment detected")
add_definitions(-DRETURN_BY_STACK)
else()
message("Multi/BLAS: MKL environment not detected, looking for other BLAS")
unset(BLA_VENDOR)
find_package(BLAS REQUIRED)
find_path(
BLAS_INCLUDE_DIRS
cblas.h
/usr/include
/usr/local/include
$ENV{BLAS_HOME}/include
)
endif()
link_libraries(${BLAS_LIBRARIES})
#find_package(BLAS REQUIRED)
#find_package(TBB REQUIRED HINTS "/usr")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
#set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -arch=sm_61 -std=c++17 --use_fast_math --expt-relaxed-constexpr --extended-lambda") # set(CMAKE_CUDA_STANDARD 17)
enable_testing()
include(CTest)
# file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
#add_executable(thrust_assignment.cu.x thrust_assignment.cu)
#add_test(NAME thrust_assignment.cu.x COMMAND thrust_assignment.cu.x)
#target_link_libraries(thrust_assignment.cu.x PRIVATE benchmark::benchmark)
add_executable(matrix_multiplication.cpp.x matrix_multiplication.cpp)
target_link_libraries(matrix_multiplication.cpp.x benchmark::benchmark)
target_link_libraries(matrix_multiplication.cpp.x -ltbb)
add_test(NAME matrix_multiplication.cpp.x COMMAND matrix_multiplication.cpp.x)
add_executable(algorithms_gemm.cpp.x algorithms_gemm.cpp)
target_link_libraries(algorithms_gemm.cpp.x benchmark::benchmark Boost::unit_test_framework)
target_link_libraries(algorithms_gemm.cpp.x -ltbb)
add_test(NAME algorithms_gemm.cpp.x COMMAND algorithms_gemm.cpp.x)
add_executable(serialization serialization.cpp)
target_link_libraries(serialization benchmark::benchmark Boost::serialization Boost::iostreams)
add_test(NAME serialization COMMAND serialization)