|
|
|
@@ -42,6 +42,9 @@ if (DEFINED BINARY AND DEFINED TARGET AND BINARY EQUAL 32) |
|
|
|
if (${TARGET} STREQUAL "ARMV8" OR ${TARGET} STREQUAL "CORTEXA57" OR ${TARGET} STREQUAL "CORTEXA53" OR ${TARGET} STREQUAL "CORTEXA55") |
|
|
|
set(TARGET "ARMV7") |
|
|
|
endif () |
|
|
|
if (${TARGET} STREQUAL "POWER8" OR ${TARGET} STREQUAL "POWER9" OR ${TARGET} STREQUAL "POWER10") |
|
|
|
set(TARGET "POWER6") |
|
|
|
endif () |
|
|
|
endif () |
|
|
|
|
|
|
|
|
|
|
|
@@ -102,6 +105,12 @@ if (CMAKE_C_COMPILER STREQUAL loongcc) |
|
|
|
set(GETARCH_FLAGS "${GETARCH_FLAGS} -static") |
|
|
|
endif () |
|
|
|
|
|
|
|
if (POWER) |
|
|
|
set (NO_WARMUP 1) |
|
|
|
execute_process(COMMAND bash -c "as -v < /dev/null 2>&1 | grep GNU 2>&1 >/dev/null" RESULT_VARIABLE HAVE_GAS) |
|
|
|
set(GETARCH_FLAGS "${GETARCH_FLAGS} -DHAVE_GAS=${HAVE_GAS}") |
|
|
|
endif() |
|
|
|
|
|
|
|
#if don't use Fortran, it will only compile CBLAS. |
|
|
|
if (ONLY_CBLAS) |
|
|
|
set(NO_LAPACK 1) |
|
|
|
@@ -222,6 +231,27 @@ if (DEFINED TARGET) |
|
|
|
if (DEFINED HAVE_SSE4_1) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse4.1") |
|
|
|
endif() |
|
|
|
|
|
|
|
if (${TARGET} STREQUAL POWER10) |
|
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math") |
|
|
|
else () |
|
|
|
message(FATAL_ERROR "Compiler GCC.${GCC_VERSION} does not support Power10.") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL POWER9) |
|
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math") |
|
|
|
else () |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math") |
|
|
|
message(WARNING "Compiler GCC.${GCC_VERSION} does not support fully Power9.") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL POWER8) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED BINARY) |
|
|
|
message(STATUS "Compiling a ${BINARY}-bit binary.") |
|
|
|
@@ -279,7 +309,7 @@ if (NEED_PIC) |
|
|
|
endif() |
|
|
|
endif () |
|
|
|
|
|
|
|
if (X86_64) |
|
|
|
if (X86_64 OR ${CORE} STREQUAL POWER10) |
|
|
|
set(SMALL_MATRIX_OPT TRUE) |
|
|
|
endif () |
|
|
|
if (SMALL_MATRIX_OPT) |
|
|
|
@@ -287,7 +317,7 @@ if (SMALL_MATRIX_OPT) |
|
|
|
endif () |
|
|
|
|
|
|
|
if (DYNAMIC_ARCH) |
|
|
|
if (X86 OR X86_64 OR ARM64 OR PPC) |
|
|
|
if (X86 OR X86_64 OR ARM64 OR POWER) |
|
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH") |
|
|
|
if (DYNAMIC_OLDER) |
|
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER") |
|
|
|
|