Files
project_6/cccl_upstream/benchmarks/cmake/CCCLBenchmarkRegistry.cmake

60 lines
1.7 KiB
CMake
Raw Normal View History

cccl_get_cudatoolkit()
set(cccl_revision "")
find_package(Git)
if (GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE cccl_revision
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (cccl_revision STREQUAL "")
# Sometimes, there is no tag (shallow copy)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE cccl_revision
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
endif()
# Sometimes this script is used outside of a Git repository.
# In this case, we read the revision from cccl/cccl_version instead.
if ("${cccl_revision}" STREQUAL "")
file(READ "${CMAKE_SOURCE_DIR}/cccl_version" cccl_revision)
string(STRIP "${cccl_revision}" cccl_revision)
string(REPLACE "\n" "" cccl_revision "${cccl_revision}")
endif()
message(STATUS "Git revision: ${cccl_revision}")
function(get_meta_path meta_path)
set(meta_path "${CMAKE_BINARY_DIR}/cccl_meta_bench.csv" PARENT_SCOPE)
endfunction()
function(create_benchmark_registry)
get_meta_path(meta_path)
set(ctk_version "${CUDAToolkit_VERSION}")
message(STATUS "CTK version: ${ctk_version}")
file(REMOVE "${meta_path}")
file(APPEND "${meta_path}" "ctk_version,${ctk_version}\n")
file(APPEND "${meta_path}" "cccl_revision,${cccl_revision}\n")
endfunction()
function(register_cccl_tuning bench_name ranges)
get_meta_path(meta_path)
if ("${ranges}" STREQUAL "")
file(APPEND "${meta_path}" "${bench_name}\n")
else()
file(APPEND "${meta_path}" "${bench_name},${ranges}\n")
endif()
endfunction()
function(register_cccl_benchmark bench_name)
register_cccl_tuning("${bench_name}" "")
endfunction()