diff --git a/scripts/benchmark/perf_test_op.sh b/scripts/benchmark/perf_test_op.sh index 9cc579b04ae845d5444a904f417663007ee9e26e..2ac97e9d588fbceecfd6cb769456b531ce6b96e3 100755 --- a/scripts/benchmark/perf_test_op.sh +++ b/scripts/benchmark/perf_test_op.sh @@ -18,13 +18,26 @@ DEV_DIR=/data/local/tmp CPU_MASK=$(echo "obase=16;2^${CPU_NUMBER}" | bc) -PREV_FREQ_GOVERNOR=$(cat /sys/devices/system/cpu/cpu${CPU_NUMBER}/cpufreq/scaling_governor) -echo performance > /sys/devices/system/cpu/cpu${CPU_NUMBER}/cpufreq/scaling_governor +FREQ_GOVERNOR_FILE="/sys/devices/system/cpu/cpu${CPU_NUMBER}/cpufreq/scaling_governor" -CDEV_TRANSITION_COUNT=$(cat /sys/devices/virtual/thermal/thermal_zone${THERMAL_ZONE_ID}/cdev0/stats/total_trans) +PREV_FREQ_GOVERNOR=$(cat "${FREQ_GOVERNOR_FILE}") +echo performance > "${FREQ_GOVERNOR_FILE}" + +THERMAL_ZONE_DIR="/sys/devices/virtual/thermal/thermal_zone${THERMAL_ZONE_ID}" + +CDEV_TRANSITION_COUNT_FILE="${THERMAL_ZONE_DIR}/cdev0/stats/total_trans" +START_CDEV_TRANSITION_COUNT=$(cat "${CDEV_TRANSITION_COUNT_FILE}") + +THERMAL_ZONE_TEMPERATURE_FILE="${THERMAL_ZONE_DIR}/temp" wait_for_cooldown() { - while [[ $(cat /sys/devices/virtual/thermal/thermal_zone${THERMAL_ZONE_ID}/temp) > 40000 ]]; do + local cur_tmp + cur_tmp=$(cat "${THERMAL_ZONE_TEMPERATURE_FILE}") + if [[ "${cur_tmp}" > 40000 ]]; then + >&2 echo "Too hot (${cur_tmp})! Cooling..." + fi + + while [[ $(cat "${THERMAL_ZONE_TEMPERATURE_FILE}") > 40000 ]]; do sleep 0.2 done } @@ -34,28 +47,28 @@ FNAME=$$ run_test() { wait_for_cooldown >&2 taskset ${CPU_MASK} \ - ${DEV_DIR}/"${PERF_TEST_BINARY_BASENAME}"_${1} \ + "${DEV_DIR}/${PERF_TEST_BINARY_BASENAME}_$1" \ --perf_min_samples=100 \ - --gtest_output=json:${DEV_DIR}/${FNAME}_${1} \ + --gtest_output=json:"${DEV_DIR}/${FNAME}_$1" \ --gtest_filter="${GTEST_FILTER}" \ --gtest_param_filter="${GTEST_PARAM_FILTER}" } run_test vanilla run_test kleidicv -if [[ -f ${DEV_DIR}/"${PERF_TEST_BINARY_BASENAME}"_kleidicv_$CUSTOM_BUILD_SUFFIX ]]; then - run_test kleidicv_$CUSTOM_BUILD_SUFFIX +if [[ -f "${DEV_DIR}/${PERF_TEST_BINARY_BASENAME}_kleidicv_${CUSTOM_BUILD_SUFFIX}" ]]; then + run_test "kleidicv_${CUSTOM_BUILD_SUFFIX}" fi -echo ${PREV_FREQ_GOVERNOR} > /sys/devices/system/cpu/cpu${CPU_NUMBER}/cpufreq/scaling_governor +echo "${PREV_FREQ_GOVERNOR}" > "${FREQ_GOVERNOR_FILE}" -if [[ ${CDEV_TRANSITION_COUNT} != $(cat /sys/devices/virtual/thermal/thermal_zone${THERMAL_ZONE_ID}/cdev0/stats/total_trans) ]]; then +if [[ "${START_CDEV_TRANSITION_COUNT}" != $(cat "${CDEV_TRANSITION_COUNT_FILE}") ]]; then >&2 echo "BENCHMARK ERROR: CPU throttling happened, exiting..." exit 1 fi -if ! grep -q "\"tests\": 1," ${DEV_DIR}/${FNAME}_vanilla; then - if grep -q "\"tests\": 0," ${DEV_DIR}/${FNAME}_vanilla; then +if ! grep -q "\"tests\": 1," "${DEV_DIR}/${FNAME}_vanilla"; then + if grep -q "\"tests\": 0," "${DEV_DIR}/${FNAME}_vanilla"; then >&2 echo "BENCHMARK ERROR: No test case was triggered, exiting..." else >&2 echo "BENCHMARK ERROR: More than one test case was triggered, exiting..." @@ -64,24 +77,24 @@ if ! grep -q "\"tests\": 1," ${DEV_DIR}/${FNAME}_vanilla; then fi get_mean() { - sed -n s/\"mean\"://p ${1} | tr -d \" | tr -d ',' | tr -d ' ' + sed -n s/\"mean\"://p "${1}" | tr -d \" | tr -d ',' | tr -d ' ' } get_gstddev() { - sed -n s/\"gstddev\"://p ${1} | tr -d \" | tr -d ',' | tr -d ' ' + sed -n s/\"gstddev\"://p "${1}" | tr -d \" | tr -d ',' | tr -d ' ' } RES="${DISP_NAME}" collect_run_results() { - RES+="\t$(get_mean ${DEV_DIR}/${FNAME}_${1})\t$(get_gstddev ${DEV_DIR}/${FNAME}_${1})" - rm ${DEV_DIR}/${FNAME}_${1} + RES+="\t$(get_mean "${DEV_DIR}/${FNAME}_${1}")\t$(get_gstddev "${DEV_DIR}/${FNAME}_$1")" + rm "${DEV_DIR}/${FNAME}_$1" } collect_run_results vanilla collect_run_results kleidicv -if [[ -f ${DEV_DIR}/${FNAME}_kleidicv_$CUSTOM_BUILD_SUFFIX ]]; then - collect_run_results kleidicv_$CUSTOM_BUILD_SUFFIX +if [[ -f "${DEV_DIR}/${FNAME}_kleidicv_${CUSTOM_BUILD_SUFFIX}" ]]; then + collect_run_results "kleidicv_${CUSTOM_BUILD_SUFFIX}" fi -printf "${RES}" +echo "${RES}" diff --git a/scripts/benchmark/run_benchmarks_4K.sh b/scripts/benchmark/run_benchmarks_4K.sh index 1b65d6003aa67c4b076af477c13b991c9740781f..0685cc03c81bcb115220bec5e8f023ca6ac7e4e7 100755 --- a/scripts/benchmark/run_benchmarks_4K.sh +++ b/scripts/benchmark/run_benchmarks_4K.sh @@ -11,80 +11,86 @@ CPU=7 THERMAL=0 CUSTOM_BUILD_SUFFIX="${CUSTOM_BUILD_SUFFIX:-custom}" -RES=$(printf "Operation\tOpenCV\tstd\tKleidiCV\tstd\tKleidiCV_$CUSTOM_BUILD_SUFFIX\tstd") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GRAY2BGR opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_GRAY2BGR)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GRAY2BGRA opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_GRAY2BGRA)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2RGB opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2RGB)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2RGBA opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGRA2RGBA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2RGBA opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2RGBA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2BGRA opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2BGRA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGBA2BGR opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_RGBA2BGR)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2BGR opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGRA2BGR)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2BGR opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2BGR_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2BGRA opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2BGRA_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2RGB opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2RGB_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2RGBA opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2RGBA_NV12)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGB2YUV opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_RGB2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2YUV opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGBA2YUV opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, CX_RGBA2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2YUV opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, CX_BGRA2YUV)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUV2RGB opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_YUV2RGB)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUV2BGR opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_YUV2BGR)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BinaryThreshold opencv_perf_imgproc '*ThreshFixture_Threshold.Threshold/*' '(3840x2160, 8UC1, THRESH_BINARY)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL SepFilter2D_5x5 opencv_perf_imgproc '*KleidiCV_SepFilter2D.SepFilter2D/*' '(3840x2160, 8UC1, 5, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur3x3 opencv_perf_imgproc '*gaussianBlur3x3/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur5x5 opencv_perf_imgproc '*gaussianBlur5x5/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur7x7 opencv_perf_imgproc '*gaussianBlur7x7/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur15x15 opencv_perf_imgproc '*gaussianBlur15x15/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur3x3_CustomSigma opencv_perf_imgproc '*gaussianBlur3x3_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur5x5_CustomSigma opencv_perf_imgproc '*gaussianBlur5x5_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur7x7_CustomSigma opencv_perf_imgproc '*gaussianBlur7x7_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur15x15_CustomSigma opencv_perf_imgproc '*gaussianBlur15x15_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Sobel_Gx opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(3840x2160, 16SC1, (1, 0), BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Sobel_Gy opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(3840x2160, 16SC1, (0, 1), BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate3x3 opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 3)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate5x5 opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 5)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate17x17 opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 17)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode3x3 opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 3)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode5x5 opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 5)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode17x17 opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 17)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize_0.5_8b opencv_perf_imgproc '*ResizeAreaFast/*' '(8UC1, 3840x2160, 2)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize2x2_8b opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (1920x1080, 3840x2160))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize2x2_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (1920x1080, 3840x2160))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize4x4_8b opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (960x540, 3840x2160))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize4x4_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (960x540, 3840x2160))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize8x8_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (480x270, 3840x2160))')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale opencv_perf_core '*convertTo/*' '(3840x2160, 8UC1, 8UC1, 1, 1.234, 4.567)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale_float_1.0 opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 32FC1, 1, 1, 4.567)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale_float opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 32FC1, 1, 1.234, 4.567)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S8_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 8SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_U8_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 8UC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S16_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 16SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_U16_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 16UC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S32_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 32SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_F32_4K opencv_perf_core '*minMaxVals/*' '(3840x2160, 32FC1)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMaxLoc_U8_4K opencv_perf_core '*minMaxLoc*' '(3840x2160, 8UC1)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL FloatToInt opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 8SC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL FloatToUint opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 8UC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL IntToFloat opencv_perf_core '*convertTo/*' '(3840x2160, 8SC1, 32FC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL UintToFloat opencv_perf_core '*convertTo/*' '(3840x2160, 8UC1, 32FC1, 1, 1, 0)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL CompareGt opencv_perf_core '*compare/*' '(3840x2160, 8UC1, CMP_GT)')") - -echo "$RES" +echo "Operation\tOpenCV\tstd\tKleidiCV\tstd\tKleidiCV_$CUSTOM_BUILD_SUFFIX\tstd" + +benchmarks=( + "GRAY2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_GRAY2BGR)'" + "GRAY2BGRA: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_GRAY2BGRA)'" + + "BGR2RGB: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2RGB)'" + "BGRA2RGBA: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGRA2RGBA)'" + "BGR2RGBA: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2RGBA)'" + "BGR2BGRA: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2BGRA)'" + "RGBA2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_RGBA2BGR)'" + "BGRA2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGRA2BGR)'" + + "YUVSP2BGR: opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2BGR_NV12)'" + "YUVSP2BGRA: opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2BGRA_NV12)'" + "YUVSP2RGB: opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2RGB_NV12)'" + "YUVSP2RGBA: opencv_perf_imgproc '*cvtColorYUV420/*' '(3840x2160, COLOR_YUV2RGBA_NV12)'" + + "RGB2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_RGB2YUV)'" + "BGR2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_BGR2YUV)'" + "RGBA2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, CX_RGBA2YUV)'" + "BGRA2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, CX_BGRA2YUV)'" + + "YUV2RGB: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_YUV2RGB)'" + "YUV2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(3840x2160, COLOR_YUV2BGR)'" + + "BinaryThreshold: opencv_perf_imgproc '*ThreshFixture_Threshold.Threshold/*' '(3840x2160, 8UC1, THRESH_BINARY)'" + + "SepFilter2D_5x5: opencv_perf_imgproc '*KleidiCV_SepFilter2D.SepFilter2D/*' '(3840x2160, 8UC1, 5, BORDER_REPLICATE)'" + + "GaussianBlur3x3: opencv_perf_imgproc '*gaussianBlur3x3/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur5x5: opencv_perf_imgproc '*gaussianBlur5x5/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur7x7: opencv_perf_imgproc '*gaussianBlur7x7/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur15x15: opencv_perf_imgproc '*gaussianBlur15x15/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + + "GaussianBlur3x3_CustomSigma: opencv_perf_imgproc '*gaussianBlur3x3_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur5x5_CustomSigma: opencv_perf_imgproc '*gaussianBlur5x5_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur7x7_CustomSigma: opencv_perf_imgproc '*gaussianBlur7x7_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur15x15_CustomSigma: opencv_perf_imgproc '*gaussianBlur15x15_CustomSigma/*' '(3840x2160, 8UC1, BORDER_REPLICATE)'" + + "Sobel_Gx: opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(3840x2160, 16SC1, (1, 0), BORDER_REPLICATE)'" + "Sobel_Gy: opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(3840x2160, 16SC1, (0, 1), BORDER_REPLICATE)'" + + "Dilate3x3: opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 3)'" + "Dilate5x5: opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 5)'" + "Dilate17x17: opencv_perf_imgproc '*Dilate_big.big/*' '(3840x2160, 8UC1, 17)'" + "Erode3x3: opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 3)'" + "Erode5x5: opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 5)'" + "Erode17x17: opencv_perf_imgproc '*Erode_big.big/*' '(3840x2160, 8UC1, 17)'" + + "Resize_0.5_8b: opencv_perf_imgproc '*ResizeAreaFast/*' '(8UC1, 3840x2160, 2)'" + "Resize2x2_8b: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (1920x1080, 3840x2160))'" + "Resize2x2_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (1920x1080, 3840x2160))'" + "Resize4x4_8b: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (960x540, 3840x2160))'" + "Resize4x4_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (960x540, 3840x2160))'" + "Resize8x8_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (480x270, 3840x2160))'" + + "Scale: opencv_perf_core '*convertTo/*' '(3840x2160, 8UC1, 8UC1, 1, 1.234, 4.567)'" + "Scale_float_1.0: opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 32FC1, 1, 1, 4.567)'" + "Scale_float: opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 32FC1, 1, 1.234, 4.567)'" + + "MinMax_S8_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 8SC1)'" + "MinMax_U8_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 8UC1)'" + "MinMax_S16_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 16SC1)'" + "MinMax_U16_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 16UC1)'" + "MinMax_S32_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 32SC1)'" + "MinMax_F32_4K: opencv_perf_core '*minMaxVals/*' '(3840x2160, 32FC1)'" + + "MinMaxLoc_U8_4K: opencv_perf_core '*minMaxLoc/*' '(3840x2160, 8UC1)'" + + "FloatToInt: opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 8SC1, 1, 1, 0)'" + "FloatToUint: opencv_perf_core '*convertTo/*' '(3840x2160, 32FC1, 8UC1, 1, 1, 0)'" + "IntToFloat: opencv_perf_core '*convertTo/*' '(3840x2160, 8SC1, 32FC1, 1, 1, 0)'" + "UintToFloat: opencv_perf_core '*convertTo/*' '(3840x2160, 8UC1, 32FC1, 1, 1, 0)'" + + "CompareGt: opencv_perf_core '*compare/*' '(3840x2160, 8UC1, CMP_GT)'" +) + +for benchmark in "${benchmarks[@]}"; do + >&2 echo + >&2 echo RUNNING: ${benchmark%%:*} ${benchmark#*:} + eval "${DEV_DIR}/perf_test_op.sh" "${CUSTOM_BUILD_SUFFIX}" "${CPU}" "${THERMAL}" ${benchmark%%:*} ${benchmark#*:} +done diff --git a/scripts/benchmark/run_benchmarks_FHD.sh b/scripts/benchmark/run_benchmarks_FHD.sh index 991c22dd9f29cba5b822641e2ec5858c069868e2..e5bceb8225e1c4862060af4936c39085e65b51f1 100755 --- a/scripts/benchmark/run_benchmarks_FHD.sh +++ b/scripts/benchmark/run_benchmarks_FHD.sh @@ -11,80 +11,86 @@ CPU=7 THERMAL=0 CUSTOM_BUILD_SUFFIX="${CUSTOM_BUILD_SUFFIX:-custom}" -RES=$(printf "Operation\tOpenCV\tstd\tKleidiCV\tstd\tKleidiCV_$CUSTOM_BUILD_SUFFIX\tstd") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GRAY2BGR opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_GRAY2BGR)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GRAY2BGRA opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_GRAY2BGRA)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2RGB opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2RGB)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2RGBA opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGRA2RGBA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2RGBA opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2RGBA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2BGRA opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2BGRA)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGBA2BGR opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_RGBA2BGR)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2BGR opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGRA2BGR)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2BGR opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2BGR_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2BGRA opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2BGRA_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2RGB opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2RGB_NV12)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUVSP2RGBA opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2RGBA_NV12)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGB2YUV opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_RGB2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGR2YUV opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL RGBA2YUV opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, CX_RGBA2YUV)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BGRA2YUV opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, CX_BGRA2YUV)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUV2RGB opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_YUV2RGB)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL YUV2BGR opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_YUV2BGR)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL BinaryThreshold opencv_perf_imgproc '*ThreshFixture_Threshold.Threshold/*' '(1920x1080, 8UC1, THRESH_BINARY)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL SepFilter2D_5x5 opencv_perf_imgproc '*KleidiCV_SepFilter2D.SepFilter2D/*' '(1920x1080, 8UC1, 5, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur3x3 opencv_perf_imgproc '*gaussianBlur3x3/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur5x5 opencv_perf_imgproc '*gaussianBlur5x5/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur7x7 opencv_perf_imgproc '*gaussianBlur7x7/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur15x15 opencv_perf_imgproc '*gaussianBlur15x15/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur3x3_CustomSigma opencv_perf_imgproc '*gaussianBlur3x3_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur5x5_CustomSigma opencv_perf_imgproc '*gaussianBlur5x5_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur7x7_CustomSigma opencv_perf_imgproc '*gaussianBlur7x7_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL GaussianBlur15x15_CustomSigma opencv_perf_imgproc '*gaussianBlur15x15_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Sobel_Gx opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(1920x1080, 16SC1, (1, 0), BORDER_REPLICATE)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Sobel_Gy opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(1920x1080, 16SC1, (0, 1), BORDER_REPLICATE)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate3x3 opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 3)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate5x5 opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 5)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Dilate17x17 opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 17)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode3x3 opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 3)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode5x5 opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 5)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Erode17x17 opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 17)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize_0.5_8b opencv_perf_imgproc '*ResizeAreaFast/*' '(8UC1, 1920x1080, 2)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize2x2_8b opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (960x540, 1920x1080))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize2x2_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (960x540, 1920x1080))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize4x4_8b opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (480x270, 1920x1080))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize4x4_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (480x270, 1920x1080))')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Resize8x8_float opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (240x135, 1920x1080))')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale opencv_perf_core '*convertTo/*' '(1920x1080, 8UC1, 8UC1, 1, 1.234, 4.567)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale_float_1.0 opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 32FC1, 1, 1, 4.567)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL Scale_float opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 32FC1, 1, 1.234, 4.567)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S8_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 8SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_U8_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 8UC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S16_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 16SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_U16_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 16UC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_S32_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 32SC1)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMax_F32_FHD opencv_perf_core '*minMaxVals/*' '(1920x1080, 32FC1)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL MinMaxLoc_U8_FHD opencv_perf_core '*minMaxLoc/*' '(1920x1080, 8UC1)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL FloatToInt opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 8SC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL FloatToUint opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 8UC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL IntToFloat opencv_perf_core '*convertTo/*' '(1920x1080, 8SC1, 32FC1, 1, 1, 0)')") -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL UintToFloat opencv_perf_core '*convertTo/*' '(1920x1080, 8UC1, 32FC1, 1, 1, 0)')") - -RES+=$(printf "\n$(${DEV_DIR}/perf_test_op.sh $CUSTOM_BUILD_SUFFIX $CPU $THERMAL CompareGt opencv_perf_core '*compare/*' '(1920x1080, 8UC1, CMP_GT)')") - -echo "$RES" +echo "Operation\tOpenCV\tstd\tKleidiCV\tstd\tKleidiCV_$CUSTOM_BUILD_SUFFIX\tstd" + +benchmarks=( + "GRAY2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_GRAY2BGR)'" + "GRAY2BGRA: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_GRAY2BGRA)'" + + "BGR2RGB: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2RGB)'" + "BGRA2RGBA: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGRA2RGBA)'" + "BGR2RGBA: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2RGBA)'" + "BGR2BGRA: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2BGRA)'" + "RGBA2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_RGBA2BGR)'" + "BGRA2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGRA2BGR)'" + + "YUVSP2BGR: opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2BGR_NV12)'" + "YUVSP2BGRA: opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2BGRA_NV12)'" + "YUVSP2RGB: opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2RGB_NV12)'" + "YUVSP2RGBA: opencv_perf_imgproc '*cvtColorYUV420/*' '(1920x1080, COLOR_YUV2RGBA_NV12)'" + + "RGB2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_RGB2YUV)'" + "BGR2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_BGR2YUV)'" + "RGBA2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, CX_RGBA2YUV)'" + "BGRA2YUV: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, CX_BGRA2YUV)'" + + "YUV2RGB: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_YUV2RGB)'" + "YUV2BGR: opencv_perf_imgproc '*cvtColor8u/*' '(1920x1080, COLOR_YUV2BGR)'" + + "BinaryThreshold: opencv_perf_imgproc '*ThreshFixture_Threshold.Threshold/*' '(1920x1080, 8UC1, THRESH_BINARY)'" + + "SepFilter2D_5x5: opencv_perf_imgproc '*KleidiCV_SepFilter2D.SepFilter2D/*' '(1920x1080, 8UC1, 5, BORDER_REPLICATE)'" + + "GaussianBlur3x3: opencv_perf_imgproc '*gaussianBlur3x3/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur5x5: opencv_perf_imgproc '*gaussianBlur5x5/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur7x7: opencv_perf_imgproc '*gaussianBlur7x7/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur15x15: opencv_perf_imgproc '*gaussianBlur15x15/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + + "GaussianBlur3x3_CustomSigma: opencv_perf_imgproc '*gaussianBlur3x3_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur5x5_CustomSigma: opencv_perf_imgproc '*gaussianBlur5x5_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur7x7_CustomSigma: opencv_perf_imgproc '*gaussianBlur7x7_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + "GaussianBlur15x15_CustomSigma: opencv_perf_imgproc '*gaussianBlur15x15_CustomSigma/*' '(1920x1080, 8UC1, BORDER_REPLICATE)'" + + "Sobel_Gx: opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(1920x1080, 16SC1, (1, 0), BORDER_REPLICATE)'" + "Sobel_Gy: opencv_perf_imgproc '*Border3x3_sobelFilter.sobelFilter/*' '(1920x1080, 16SC1, (0, 1), BORDER_REPLICATE)'" + + "Dilate3x3: opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 3)'" + "Dilate5x5: opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 5)'" + "Dilate17x17:opencv_perf_imgproc '*Dilate_big.big/*' '(1920x1080, 8UC1, 17)'" + "Erode3x3: opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 3)'" + "Erode5x5: opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 5)'" + "Erode17x17: opencv_perf_imgproc '*Erode_big.big/*' '(1920x1080, 8UC1, 17)'" + + "Resize_0.5_8b: opencv_perf_imgproc '*ResizeAreaFast/*' '(8UC1, 1920x1080, 2)'" + "Resize2x2_8b: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (960x540, 1920x1080))'" + "Resize2x2_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (960x540, 1920x1080))'" + "Resize4x4_8b: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(8UC1, (480x270, 1920x1080))'" + "Resize4x4_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (480x270, 1920x1080))'" + "Resize8x8_float: opencv_perf_imgproc '*resizeUpLinearNonExact/*' '(32FC1, (240x135, 1920x1080))'" + + "Scale: opencv_perf_core '*convertTo/*' '(1920x1080, 8UC1, 8UC1, 1, 1.234, 4.567)'" + "Scale_float_1.0: opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 32FC1, 1, 1, 4.567)'" + "Scale_float: opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 32FC1, 1, 1.234, 4.567)'" + + "MinMax_S8_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 8SC1)'" + "MinMax_U8_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 8UC1)'" + "MinMax_S16_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 16SC1)'" + "MinMax_U16_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 16UC1)'" + "MinMax_S32_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 32SC1)'" + "MinMax_F32_FHD: opencv_perf_core '*minMaxVals/*' '(1920x1080, 32FC1)'" + + "MinMaxLoc_U8_FHD: opencv_perf_core '*minMaxLoc/*' '(1920x1080, 8UC1)'" + + "FloatToInt: opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 8SC1, 1, 1, 0)'" + "FloatToUint: opencv_perf_core '*convertTo/*' '(1920x1080, 32FC1, 8UC1, 1, 1, 0)'" + "IntToFloat: opencv_perf_core '*convertTo/*' '(1920x1080, 8SC1, 32FC1, 1, 1, 0)'" + "UintToFloat: opencv_perf_core '*convertTo/*' '(1920x1080, 8UC1, 32FC1, 1, 1, 0)'" + + "CompareGt: opencv_perf_core '*compare/*' '(1920x1080, 8UC1, CMP_GT)'" +) + +for benchmark in "${benchmarks[@]}"; do + >&2 echo + >&2 echo RUNNING: ${benchmark%%:*} ${benchmark#*:} + eval "${DEV_DIR}/perf_test_op.sh" "${CUSTOM_BUILD_SUFFIX}" "${CPU}" "${THERMAL}" ${benchmark%%:*} ${benchmark#*:} +done