diff --git a/CMakeLists.txt b/CMakeLists.txt index 860796f5c279..e0531010054a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Options and Variants option(alpaka_BUILD_EXAMPLES "Build the examples" OFF) +option(alpaka_BUILD_BENCHMARKS "Build the benchmarks" OFF) # Enable the test infrastructure only if alpaka is the top-level project if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) @@ -80,7 +81,7 @@ set(_alpaka_INCLUDE_DIRECTORY "${_alpaka_ROOT_DIR}/include") set(_alpaka_SUFFIXED_INCLUDE_DIR "${_alpaka_INCLUDE_DIRECTORY}/alpaka") # the sequential accelerator is required for the tests and examples -if(alpaka_BUILD_EXAMPLES OR BUILD_TESTING) +if(alpaka_BUILD_EXAMPLES OR alpaka_BUILD_BENCHMARKS OR BUILD_TESTING) if (NOT (alpaka_ACC_GPU_CUDA_ONLY_MODE OR alpaka_ACC_GPU_HIP_ONLY_MODE)) if (NOT DEFINED alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE) option(alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE "enable alpaka serial accelerator" ON) @@ -148,6 +149,10 @@ if(alpaka_BUILD_EXAMPLES) add_subdirectory("example/") endif() +if(alpaka_BUILD_BENCHMARKS) + add_subdirectory("benchmarks/") +endif() + # Only build the tests if alpaka is the top-level project and BUILD_TESTING is ON if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) add_subdirectory("test/") diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt new file mode 100644 index 000000000000..3ae15f537d4f --- /dev/null +++ b/benchmarks/CMakeLists.txt @@ -0,0 +1,18 @@ +# +# Copyright 2023 Benjamin Worpitz, Jan Stephan, Mehmet Yusufoglu +# SPDX-License-Identifier: ISC +# + +################################################################################ +# Required CMake version. +################################################################################ + +cmake_minimum_required(VERSION 3.22) + +project("alpakaBenchmarks" LANGUAGES CXX) + +################################################################################ +# Add subdirectories. +################################################################################ + +add_subdirectory("babelstream/") diff --git a/example/babelstream/CMakeLists.txt b/benchmarks/babelstream/CMakeLists.txt similarity index 78% rename from example/babelstream/CMakeLists.txt rename to benchmarks/babelstream/CMakeLists.txt index b4cea499d443..e2382a1139d8 100644 --- a/example/babelstream/CMakeLists.txt +++ b/benchmarks/babelstream/CMakeLists.txt @@ -11,8 +11,8 @@ project(babelstream LANGUAGES CXX) if(NOT TARGET alpaka::alpaka) option(alpaka_USE_SOURCE_TREE "Use alpaka's source tree instead of an alpaka installation" OFF) if(alpaka_USE_SOURCE_TREE) - # Don't build the examples recursively - set(alpaka_BUILD_EXAMPLES OFF) + # Don't build the benchmarks recursively + set(alpaka_BUILD_BENCHMARKS OFF) add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/../.." "${CMAKE_BINARY_DIR}/alpaka") else() find_package(alpaka REQUIRED) @@ -22,4 +22,6 @@ endif() alpaka_add_executable(${PROJECT_NAME} src/main.cpp src/Stream.h src/AlpakaStream.cpp src/AlpakaStream.h) target_compile_definitions(${PROJECT_NAME} PUBLIC ALPAKA) target_link_libraries(${PROJECT_NAME} PUBLIC alpaka::alpaka) -set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER example) +set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER benchmarks) + +# add_test(NAME ${_TARGET_NAME} COMMAND ${_TARGET_NAME}) diff --git a/example/babelstream/src/AlpakaStream.cpp b/benchmarks/babelstream/src/AlpakaStream.cpp similarity index 100% rename from example/babelstream/src/AlpakaStream.cpp rename to benchmarks/babelstream/src/AlpakaStream.cpp diff --git a/example/babelstream/src/AlpakaStream.h b/benchmarks/babelstream/src/AlpakaStream.h similarity index 100% rename from example/babelstream/src/AlpakaStream.h rename to benchmarks/babelstream/src/AlpakaStream.h diff --git a/example/babelstream/src/LICENSE b/benchmarks/babelstream/src/LICENSE similarity index 100% rename from example/babelstream/src/LICENSE rename to benchmarks/babelstream/src/LICENSE diff --git a/example/babelstream/src/README.md b/benchmarks/babelstream/src/README.md similarity index 100% rename from example/babelstream/src/README.md rename to benchmarks/babelstream/src/README.md diff --git a/example/babelstream/src/Stream.h b/benchmarks/babelstream/src/Stream.h similarity index 100% rename from example/babelstream/src/Stream.h rename to benchmarks/babelstream/src/Stream.h diff --git a/example/babelstream/src/main.cpp b/benchmarks/babelstream/src/main.cpp similarity index 100% rename from example/babelstream/src/main.cpp rename to benchmarks/babelstream/src/main.cpp diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index bb6f1061a590..16db8c615b68 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -33,4 +33,3 @@ add_subdirectory("randomCells2D/") add_subdirectory("reduce/") add_subdirectory("tagSpecialization/") add_subdirectory("vectorAdd/") -add_subdirectory("babelstream/") diff --git a/script/run_generate.sh b/script/run_generate.sh index 142bfa484ca9..1ac297a0ca7e 100755 --- a/script/run_generate.sh +++ b/script/run_generate.sh @@ -78,7 +78,7 @@ mkdir -p build/ cd build/ "${ALPAKA_CI_CMAKE_EXECUTABLE}" --log-level=VERBOSE -G "${ALPAKA_CI_CMAKE_GENERATOR}" ${ALPAKA_CI_CMAKE_GENERATOR_PLATFORM}\ - -Dalpaka_BUILD_EXAMPLES=ON -DBUILD_TESTING=ON "$(env2cmake alpaka_ENABLE_WERROR)" \ + -Dalpaka_BUILD_EXAMPLES=ON -DBUILD_TESTING=ON -Dalpaka_BUILD_BENCHMARKS=ON "$(env2cmake alpaka_ENABLE_WERROR)" \ "$(env2cmake BOOST_ROOT)" -DBOOST_LIBRARYDIR="${ALPAKA_CI_BOOST_LIB_DIR}/lib" -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_MULTITHREADED=ON -DBoost_USE_STATIC_RUNTIME=OFF -DBoost_ARCHITECTURE="-x64" \ "$(env2cmake CMAKE_BUILD_TYPE)" "$(env2cmake CMAKE_CXX_FLAGS)" "$(env2cmake CMAKE_C_COMPILER)" "$(env2cmake CMAKE_CXX_COMPILER)" "$(env2cmake CMAKE_EXE_LINKER_FLAGS)" "$(env2cmake CMAKE_CXX_EXTENSIONS)"\ "$(env2cmake alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE)" "$(env2cmake alpaka_ACC_CPU_B_SEQ_T_THREADS_ENABLE)" \