Skip to content

Commit 942e229

Browse files
authored
Merge pull request #1930 from martin-frbg/issue1908
Reflect ARMV8 target definition changes from PR1876
2 parents 20033f9 + 26a3402 commit 942e229

File tree

1 file changed

+110
-4
lines changed

1 file changed

+110
-4
lines changed

cmake/prebuild.cmake

Lines changed: 110 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,26 +116,80 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
116116
"#define L2_LINESIZE\t64\n"
117117
"#define DTB_DEFAULT_ENTRIES\t64\n"
118118
"#define DTB_SIZE\t4096\n"
119-
"#define L2_ASSOCIATIVE\t32\n")
119+
"#define L2_ASSOCIATIVE\t32\n"
120+
"#define ARMV8\n")
120121
set(SGEMM_UNROLL_M 4)
121122
set(SGEMM_UNROLL_N 4)
122-
elseif ("${CORE}" STREQUAL "CORTEXA57")
123+
elseif ("${CORE}" STREQUAL "CORTEXA57" OR "${CORE}" STREQUAL "CORTEXA53")
124+
file(APPEND ${TARGET_CONF_TEMP}
125+
"#define L1_CODE_SIZE\t32768\n"
126+
"#define L1_CODE_LINESIZE\t64\n"
127+
"#define L1_CODE_ASSOCIATIVE\t3\n"
128+
"#define L1_DATA_SIZE\t32768\n"
129+
"#define L1_DATA_LINESIZE\t64\n"
130+
"#define L1_DATA_ASSOCIATIVE\t2\n"
131+
"#define L2_SIZE\t262144\n"
132+
"#define L2_LINESIZE\t64\n"
133+
"#define L2_ASSOCIATIVE\t16\n"
134+
"#define DTB_DEFAULT_ENTRIES\t64\n"
135+
"#define DTB_SIZE\t4096\n"
136+
"#define HAVE_VFPV4\n"
137+
"#define HAVE_VFPV3\n"
138+
"#define HAVE_VFP\n"
139+
"#define HAVE_NEON\n"
140+
"#define ARMV8\n")
141+
set(SGEMM_UNROLL_M 16)
142+
set(SGEMM_UNROLL_N 4)
143+
set(DGEMM_UNROLL_M 8)
144+
set(DGEMM_UNROLL_N 4)
145+
set(CGEMM_UNROLL_M 8)
146+
set(CGEMM_UNROLL_N 4)
147+
set(ZGEMM_UNROLL_M 8)
148+
set(ZGEMM_UNROLL_N 4)
149+
elseif ("${CORE}" STREQUAL "CORTEXA72" OR "${CORE}" STREQUAL "CORTEXA73")
123150
file(APPEND ${TARGET_CONF_TEMP}
124151
"#define L1_CODE_SIZE\t49152\n"
125152
"#define L1_CODE_LINESIZE\t64\n"
126153
"#define L1_CODE_ASSOCIATIVE\t3\n"
127154
"#define L1_DATA_SIZE\t32768\n"
128155
"#define L1_DATA_LINESIZE\t64\n"
129156
"#define L1_DATA_ASSOCIATIVE\t2\n"
130-
"#define L2_SIZE\t2097152\n"
157+
"#define L2_SIZE\t524288\n"
158+
"#define L2_LINESIZE\t64\n"
159+
"#define L2_ASSOCIATIVE\t16\n"
160+
"#define DTB_DEFAULT_ENTRIES\t64\n"
161+
"#define DTB_SIZE\t4096\n"
162+
"#define HAVE_VFPV4\n"
163+
"#define HAVE_VFPV3\n"
164+
"#define HAVE_VFP\n"
165+
"#define HAVE_NEON\n"
166+
"#define ARMV8\n")
167+
set(SGEMM_UNROLL_M 16)
168+
set(SGEMM_UNROLL_N 4)
169+
set(DGEMM_UNROLL_M 8)
170+
set(DGEMM_UNROLL_N 4)
171+
set(CGEMM_UNROLL_M 8)
172+
set(CGEMM_UNROLL_N 4)
173+
set(ZGEMM_UNROLL_M 8)
174+
set(ZGEMM_UNROLL_N 4)
175+
elseif ("${CORE}" STREQUAL "FALKOR")
176+
file(APPEND ${TARGET_CONF_TEMP}
177+
"#define L1_CODE_SIZE\t65536\n"
178+
"#define L1_CODE_LINESIZE\t64\n"
179+
"#define L1_CODE_ASSOCIATIVE\t3\n"
180+
"#define L1_DATA_SIZE\t32768\n"
181+
"#define L1_DATA_LINESIZE\t128\n"
182+
"#define L1_DATA_ASSOCIATIVE\t2\n"
183+
"#define L2_SIZE\t524288\n"
131184
"#define L2_LINESIZE\t64\n"
132185
"#define L2_ASSOCIATIVE\t16\n"
133186
"#define DTB_DEFAULT_ENTRIES\t64\n"
134187
"#define DTB_SIZE\t4096\n"
135188
"#define HAVE_VFPV4\n"
136189
"#define HAVE_VFPV3\n"
137190
"#define HAVE_VFP\n"
138-
"#define HAVE_NEON\n")
191+
"#define HAVE_NEON\n"
192+
"#define ARMV8\n")
139193
set(SGEMM_UNROLL_M 16)
140194
set(SGEMM_UNROLL_N 4)
141195
set(DGEMM_UNROLL_M 8)
@@ -144,6 +198,57 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
144198
set(CGEMM_UNROLL_N 4)
145199
set(ZGEMM_UNROLL_M 8)
146200
set(ZGEMM_UNROLL_N 4)
201+
elseif ("${CORE}" STREQUAL "THUNDERX)
202+
file(APPEND ${TARGET_CONF_TEMP}
203+
"#define L1_CODE_SIZE\t32768\n"
204+
"#define L1_CODE_LINESIZE\t64\n"
205+
"#define L1_CODE_ASSOCIATIVE\t3\n"
206+
"#define L1_DATA_SIZE\t32768\n"
207+
"#define L1_DATA_LINESIZE\t128\n"
208+
"#define L1_DATA_ASSOCIATIVE\t2\n"
209+
"#define L2_SIZE\t167772164\n"
210+
"#define L2_LINESIZE\t128\n"
211+
"#define L2_ASSOCIATIVE\t16\n"
212+
"#define DTB_DEFAULT_ENTRIES\t64\n"
213+
"#define DTB_SIZE\t4096\n"
214+
"#define HAVE_VFPV4\n"
215+
"#define HAVE_VFPV3\n"
216+
"#define HAVE_VFP\n"
217+
"#define HAVE_NEON\n"
218+
"#define ARMV8\n")
219+
set(SGEMM_UNROLL_M 4)
220+
set(SGEMM_UNROLL_N 4)
221+
set(DGEMM_UNROLL_M 2)
222+
set(DGEMM_UNROLL_N 2)
223+
set(CGEMM_UNROLL_M 2)
224+
set(CGEMM_UNROLL_N 2)
225+
set(ZGEMM_UNROLL_M 2)
226+
set(ZGEMM_UNROLL_N 2)
227+
elseif ("${CORE}" STREQUAL "THUNDERX2T99)
228+
file(APPEND ${TARGET_CONF_TEMP}
229+
"#define L1_CODE_SIZE\t32768\n"
230+
"#define L1_CODE_LINESIZE\t64\n"
231+
"#define L1_CODE_ASSOCIATIVE\t8\n"
232+
"#define L1_DATA_SIZE\t32768\n"
233+
"#define L1_DATA_LINESIZE\t64\n"
234+
"#define L1_DATA_ASSOCIATIVE\t8\n"
235+
"#define L2_SIZE\t262144\n"
236+
"#define L2_LINESIZE\t64\n"
237+
"#define L2_ASSOCIATIVE\t8\n"
238+
"#define L3_SIZE\t33554432\n"
239+
"#define L3_LINESIZE\t64\n"
240+
"#define L3_ASSOCIATIVE\t32\n"
241+
"#define DTB_DEFAULT_ENTRIES\t64\n"
242+
"#define DTB_SIZE\t4096\n"
243+
"#define VULCAN\n")
244+
set(SGEMM_UNROLL_M 16)
245+
set(SGEMM_UNROLL_N 4)
246+
set(DGEMM_UNROLL_M 8)
247+
set(DGEMM_UNROLL_N 4)
248+
set(CGEMM_UNROLL_M 8)
249+
set(CGEMM_UNROLL_N 4)
250+
set(ZGEMM_UNROLL_M 4)
251+
set(ZGEMM_UNROLL_N 4)
147252
endif()
148253

149254
# Or should this actually be NUM_CORES?
@@ -163,6 +268,7 @@ if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSS
163268
file(APPEND ${TARGET_CONF_TEMP}
164269
"#define GEMM_MULTITHREAD_THRESHOLD\t${GEMM_MULTITHREAD_THRESHOLD}\n")
165270
# Move to where gen_config_h would place it
271+
file(MAKE_DIRECTORY ${TARGET_CONF_DIR})
166272
file(RENAME ${TARGET_CONF_TEMP} "${TARGET_CONF_DIR}/${TARGET_CONF}")
167273

168274
else(NOT CMAKE_CROSSCOMPILING)

0 commit comments

Comments
 (0)