|
|
@ -5,6 +5,10 @@ |
|
|
|
# AVX / AVX2 / AVX_512F |
|
|
|
# AVX / AVX2 / AVX_512F |
|
|
|
# FMA3 |
|
|
|
# FMA3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ppc64le arch: |
|
|
|
|
|
|
|
# VSX (always available on Power8) |
|
|
|
|
|
|
|
# VSX3 (always available on Power9) |
|
|
|
|
|
|
|
|
|
|
|
# CPU_{opt}_SUPPORTED=ON/OFF - compiler support (possibly with additional flag) |
|
|
|
# CPU_{opt}_SUPPORTED=ON/OFF - compiler support (possibly with additional flag) |
|
|
|
# CPU_{opt}_IMPLIES=<list> |
|
|
|
# CPU_{opt}_IMPLIES=<list> |
|
|
|
# CPU_{opt}_FORCE=<list> - subset of "implies" list |
|
|
|
# CPU_{opt}_FORCE=<list> - subset of "implies" list |
|
|
@ -29,7 +33,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
set(CPU_ALL_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX_512F;AVX512_SKX") |
|
|
|
set(CPU_ALL_OPTIMIZATIONS "SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX_512F;AVX512_SKX") |
|
|
|
list(APPEND CPU_ALL_OPTIMIZATIONS NEON VFPV3 FP16) |
|
|
|
list(APPEND CPU_ALL_OPTIMIZATIONS NEON VFPV3 FP16) |
|
|
|
list(APPEND CPU_ALL_OPTIMIZATIONS VSX) |
|
|
|
list(APPEND CPU_ALL_OPTIMIZATIONS VSX VSX3) |
|
|
|
list(REMOVE_DUPLICATES CPU_ALL_OPTIMIZATIONS) |
|
|
|
list(REMOVE_DUPLICATES CPU_ALL_OPTIMIZATIONS) |
|
|
|
|
|
|
|
|
|
|
|
ocv_update(CPU_VFPV3_FEATURE_ALIAS "") |
|
|
|
ocv_update(CPU_VFPV3_FEATURE_ALIAS "") |
|
|
@ -81,7 +85,7 @@ ocv_optimization_process_obsolete_option(ENABLE_FMA3 FMA3 ON) |
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_VFPV3 VFPV3 OFF) |
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_VFPV3 VFPV3 OFF) |
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_NEON NEON OFF) |
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_NEON NEON OFF) |
|
|
|
|
|
|
|
|
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_VSX VSX OFF) |
|
|
|
ocv_optimization_process_obsolete_option(ENABLE_VSX VSX ON) |
|
|
|
|
|
|
|
|
|
|
|
macro(ocv_is_optimization_in_list resultvar check_opt) |
|
|
|
macro(ocv_is_optimization_in_list resultvar check_opt) |
|
|
|
set(__checked "") |
|
|
|
set(__checked "") |
|
|
@ -289,14 +293,24 @@ elseif(ARM OR AARCH64) |
|
|
|
set(CPU_BASELINE "NEON;FP16" CACHE STRING "${HELP_CPU_BASELINE}") |
|
|
|
set(CPU_BASELINE "NEON;FP16" CACHE STRING "${HELP_CPU_BASELINE}") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
elseif(PPC64LE) |
|
|
|
elseif(PPC64LE) |
|
|
|
ocv_update(CPU_KNOWN_OPTIMIZATIONS "VSX") |
|
|
|
ocv_update(CPU_KNOWN_OPTIMIZATIONS "VSX;VSX3") |
|
|
|
ocv_update(CPU_VSX_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_vsx.cpp") |
|
|
|
ocv_update(CPU_VSX_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_vsx.cpp") |
|
|
|
|
|
|
|
ocv_update(CPU_VSX3_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_vsx3.cpp") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT OPENCV_CPU_OPT_IMPLIES_IGNORE) |
|
|
|
|
|
|
|
ocv_update(CPU_VSX3_IMPLIES "VSX") |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
if(CV_CLANG AND (NOT ${CMAKE_CXX_COMPILER} MATCHES "xlc")) |
|
|
|
if(CV_CLANG AND (NOT ${CMAKE_CXX_COMPILER} MATCHES "xlc")) |
|
|
|
ocv_update(CPU_VSX_FLAGS_ON "-mvsx -maltivec") |
|
|
|
ocv_update(CPU_VSX_FLAGS_ON "-mvsx -maltivec") |
|
|
|
|
|
|
|
ocv_update(CPU_VSX3_FLAGS_ON "-mpower9-vector") |
|
|
|
else() |
|
|
|
else() |
|
|
|
ocv_update(CPU_VSX_FLAGS_ON "-mcpu=power8") |
|
|
|
ocv_update(CPU_VSX_FLAGS_ON "-mcpu=power8") |
|
|
|
|
|
|
|
ocv_update(CPU_VSX3_FLAGS_ON "-mcpu=power9 -mtune=power9") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set(CPU_DISPATCH "VSX3" CACHE STRING "${HELP_CPU_DISPATCH}") |
|
|
|
|
|
|
|
set(CPU_BASELINE "VSX" CACHE STRING "${HELP_CPU_BASELINE}") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
# Helper values for cmake-gui |
|
|
|
# Helper values for cmake-gui |
|
|
|