Support performance tests

Support performance tests while direct tests commands keep unchanged.
To build performance tests, run "make build_perf".
To run all performance testis, run "make perf".
To run specific tests, for example, run
/usr/bin/ctest -C performance -R performance_tests/perfDispatch --verbose
To run individual test, for example, run
performance_tests/memory/hipPerfMemMallocCpyFree

Change-Id: I168c1b9ef1ec21b392d48648d0c71e8fbd37d57b


[ROCm/hip commit: 6e972dd3bb]
This commit is contained in:
Tao Sang
2020-05-04 18:06:34 -04:00
committed by Tao Sang
parent 84b36e38c3
commit afbd11eb66
10 changed files with 65 additions and 20 deletions
+24 -13
View File
@@ -1,6 +1,9 @@
include(CTest)
find_package(HIP REQUIRED)
set(HIP_CTEST_CONFIG_DEFAULT "default")
set(HIP_CTEST_CONFIG_PERFORMANCE "performance")
#-------------------------------------------------------------------------------
# Helper macro to parse BUILD instructions
macro(PARSE_BUILD_COMMAND _target _sources _hipcc_options _hcc_options _clang_options _nvcc_options _link_options _exclude_platforms _exclude_runtime _exclude_compiler _depends _dir)
@@ -291,22 +294,30 @@ macro(READ_FROM_MAP _map _key _value)
endmacro()
# Helper macro to create a test
macro(MAKE_TEST exe)
macro(MAKE_TEST _config exe)
string(REPLACE " " "" smush_args ${ARGN})
set(testname ${exe}${smush_args}.tst)
add_test(NAME ${testname} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
if(${_config} STREQUAL ${HIP_CTEST_CONFIG_DEFAULT})
add_test(NAME ${testname} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
else()
add_test(NAME ${testname} CONFIGURATIONS ${_config} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
endif()
set_tests_properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "PASSED" ENVIRONMENT HIP_PATH=${HIP_ROOT_DIR})
endmacro()
macro(MAKE_NAMED_TEST exe testname)
add_test(NAME ${testname} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
macro(MAKE_NAMED_TEST _config exe testname)
if(${_config} STREQUAL ${HIP_CTEST_CONFIG_DEFAULT})
add_test(NAME ${testname} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
else()
add_test(NAME ${testname} CONFIGURATIONS ${_config} COMMAND ${PROJECT_BINARY_DIR}/${exe} ${ARGN})
endif()
set_tests_properties(${testname} PROPERTIES PASS_REGULAR_EXPRESSION "PASSED" ENVIRONMENT HIP_PATH=${HIP_ROOT_DIR})
endmacro()
#-------------------------------------------------------------------------------
# Macro: HIT_ADD_FILES used to scan+add multiple files for testing.
file(GLOB HIP_LIB_FILES ${HIP_PATH}/lib/*)
macro(HIT_ADD_FILES _dir _label _parent)
macro(HIT_ADD_FILES _config _dir _label _parent)
foreach (file ${ARGN})
# Build tests
execute_process(COMMAND ${HIP_SRC_PATH}/tests/hit/parser --buildCMDs ${file}
@@ -398,7 +409,7 @@ macro(HIT_ADD_FILES _dir _label _parent)
elseif(${HIP_RUNTIME} IN_LIST _exclude_runtime AND ${HIP_COMPILER} IN_LIST _exclude_compiler)
elseif(_exclude_test_from_build STREQUAL TRUE)
else()
make_test(${_label}/${_target} ${_arguments})
make_test(${_config} ${_label}/${_target} ${_arguments})
endif()
endforeach()
@@ -420,7 +431,7 @@ macro(HIT_ADD_FILES _dir _label _parent)
elseif(${HIP_RUNTIME} IN_LIST _exclude_runtime AND ${HIP_COMPILER} IN_LIST _exclude_compiler)
elseif(_exclude_test_from_build STREQUAL TRUE)
else()
make_named_test(${_label}/${_target} ${_label}/${_testname}.tst ${_arguments})
make_named_test(${_config} ${_label}/${_target} ${_label}/${_testname}.tst ${_arguments})
endif()
endforeach()
endforeach()
@@ -432,16 +443,16 @@ macro(HIT_ADD_DIRECTORY _dir _label)
string(REGEX REPLACE "/" "." _parent ${_label})
add_custom_target(${_parent})
file(GLOB files "${_dir}/*.c*")
hit_add_files(${_dir} ${_label} ${parent} ${files})
hit_add_files(${HIP_CTEST_CONFIG_DEFAULT} ${_dir} ${_label} ${parent} ${files})
endmacro()
# Macro: HIT_ADD_DIRECTORY_RECURSIVE to scan+add all files in a directory+subdirectories for testing
macro(HIT_ADD_DIRECTORY_RECURSIVE _dir _label)
macro(HIT_ADD_DIRECTORY_RECURSIVE _config _dir _label)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${_label} WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
string(REGEX REPLACE "/" "." _parent ${_label})
add_custom_target(${_parent})
if(${ARGC} EQUAL 3)
add_dependencies(${ARGV2} ${_parent})
if(${ARGC} EQUAL 4)
add_dependencies(${ARGV3} ${_parent})
endif()
file(GLOB children RELATIVE ${_dir} ${_dir}/*)
set(dirlist "")
@@ -449,12 +460,12 @@ macro(HIT_ADD_DIRECTORY_RECURSIVE _dir _label)
if(IS_DIRECTORY ${_dir}/${child})
list(APPEND dirlist ${child})
else()
hit_add_files(${_dir} ${_label} ${_parent} ${child})
hit_add_files(${_config} ${_dir} ${_label} ${_parent} ${child})
endif()
endforeach()
foreach(child ${dirlist})
string(REGEX REPLACE "/" "." _parent ${_label})
hit_add_directory_recursive(${_dir}/${child} ${_label}/${child} ${_parent})
hit_add_directory_recursive(${_config} ${_dir}/${child} ${_label}/${child} ${_parent})
endforeach()
endmacro()