Skip to content

Commit fde8a8e

Browse files
authored
Improve cmake build behaviour with non-host cpu targets (#2246)
1. Supply appropriate values for C/Z GEMM unroll when cross-compiling for CORE2 or ARMV7 2. Add the required xLOCAL_BUFFER_SIZE parameters for cross-compiling CORE2 3. Add -DFORCE_<target> option to getarch when building with -DTARGET=target for #2245
1 parent ee49852 commit fde8a8e

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

cmake/prebuild.cmake

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
105105
# Perhaps this should be inside a different file as it grows larger
106106
file(APPEND ${TARGET_CONF_TEMP}
107107
"#define ${TCORE}\n"
108+
"#define CORE_${TCORE}\n"
108109
"#define CHAR_CORENAME \"${TCORE}\"\n")
109110
if ("${TCORE}" STREQUAL "CORE2")
110111
file(APPEND ${TARGET_CONF_TEMP}
@@ -119,15 +120,19 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
119120
"#define HAVE_SSE\n"
120121
"#define HAVE_SSE2\n"
121122
"#define HAVE_SSE3\n"
122-
"#define HAVE_SSSE3\n")
123+
"#define HAVE_SSSE3\n"
124+
"#define SLOCAL_BUFFER_SIZE\t16384\n"
125+
"#define DLOCAL_BUFFER_SIZE\t16384\n"
126+
"#define CLOCAL_BUFFER_SIZE\t16384\n"
127+
"#define ZLOCAL_BUFFER_SIZE\t16384\n")
123128
set(SGEMM_UNROLL_M 8)
124129
set(SGEMM_UNROLL_N 4)
125130
set(DGEMM_UNROLL_M 4)
126131
set(DGEMM_UNROLL_N 4)
127-
set(CGEMM_DEFAULT_UNROLL_M 4)
128-
set(CGEMM_DEFAULT_UNROLL_N 2)
129-
set(ZGEMM_DEFAULT_UNROLL_M 2)
130-
set(ZGEMM_DEFAULT_UNROLL_N 2)
132+
set(CGEMM_UNROLL_M 4)
133+
set(CGEMM_UNROLL_N 2)
134+
set(ZGEMM_UNROLL_M 2)
135+
set(ZGEMM_UNROLL_N 2)
131136
elseif ("${TCORE}" STREQUAL "ARMV7")
132137
file(APPEND ${TARGET_CONF_TEMP}
133138
"#define L1_DATA_SIZE\t65536\n"
@@ -143,6 +148,10 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
143148
set(SGEMM_UNROLL_N 4)
144149
set(DGEMM_UNROLL_M 4)
145150
set(DGEMM_UNROLL_N 4)
151+
set(CGEMM_UNROLL_M 2)
152+
set(CGEMM_UNROLL_N 2)
153+
set(ZGEMM_UNROLL_M 2)
154+
set(ZGEMM_UNROLL_N 2)
146155
elseif ("${TCORE}" STREQUAL "ARMV8")
147156
file(APPEND ${TARGET_CONF_TEMP}
148157
"#define L1_DATA_SIZE\t32768\n"
@@ -331,6 +340,9 @@ else(NOT CMAKE_CROSSCOMPILING)
331340
set(GETARCH_FLAGS ${GETARCH_FLAGS} -DFORCE_GENERIC)
332341
else()
333342
list(APPEND GETARCH_SRC ${PROJECT_SOURCE_DIR}/cpuid.S)
343+
if (DEFINED TARGET_CORE)
344+
set(GETARCH_FLAGS ${GETARCH_FLAGS} -DFORCE_${TARGET_CORE})
345+
endif ()
334346
endif ()
335347

336348
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")

0 commit comments

Comments
 (0)