blob: bae325be558ab1ee2ebd1a1304147cef86c4b177 [file] [log] [blame]
Jerry Wuc59155f2022-06-01 23:46:18 +00001# Copyright 2022 The IREE Authors
2#
3# Licensed under the Apache License v2.0 with LLVM Exceptions.
4# See https://llvm.org/LICENSE.txt for license information.
5# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
7################################################################################
8# #
9# Default benchmark configurations #
10# #
11# Each suite benchmarks a list of modules with configurations specifying a #
12# target architecture and runtime characteristics (e.g. threads/cores). These #
Scott Todd33a7caa2022-06-10 10:47:10 -070013# benchmarks only configure IREE compilation and runtime flags for the target #
Jerry Wuc59155f2022-06-01 23:46:18 +000014# architecture and do *not* include any non-default flags. No non-default #
15# flags should be added here. #
16# #
17################################################################################
18
Scott Todd33a7caa2022-06-10 10:47:10 -070019set(ANDROID_CPU_COMPILATION_FLAGS
Jerry Wuc59155f2022-06-01 23:46:18 +000020 "--iree-input-type=tosa"
21 "--iree-llvm-target-triple=aarch64-none-linux-android29")
22
Scott Todd9a96d002022-08-11 22:13:05 -070023# CPU, LLVM, local-sync, big/little-core, full-inference
Jerry Wuc59155f2022-06-01 23:46:18 +000024iree_benchmark_suite(
25 GROUP_NAME
26 "android-arm64-v8a"
27
28 MODULES
29 "${DEEPLABV3_FP32_MODULE}"
30 "${MOBILESSD_FP32_MODULE}"
31 "${POSENET_FP32_MODULE}"
32 "${MOBILEBERT_FP32_MODULE}"
33 "${MOBILEBERT_INT8_MODULE}"
34 "${MOBILENET_V2_MODULE}"
35 "${MOBILENET_V3SMALL_MODULE}"
36
37 BENCHMARK_MODES
38 "big-core,full-inference,default-flags"
39 "little-core,full-inference,default-flags"
40 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -070041 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +000042 TARGET_ARCHITECTURE
43 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -070044 COMPILATION_FLAGS
45 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +000046 BENCHMARK_TOOL
47 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -070048 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -070049 "iree-llvm-cpu-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +000050 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -070051 "local-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +000052)
53
Scott Todd9a96d002022-08-11 22:13:05 -070054# CPU, LLVM, local-task, 1 through 4 threads, big/little-core, full-inference.
Jerry Wuc59155f2022-06-01 23:46:18 +000055iree_benchmark_suite(
56 GROUP_NAME
57 "android-arm64-v8a"
58
59 MODULES
60 "${DEEPLABV3_FP32_MODULE}"
61 "${MOBILESSD_FP32_MODULE}"
62 "${POSENET_FP32_MODULE}"
63 "${MOBILEBERT_FP32_MODULE}"
64 "${MOBILEBERT_INT8_MODULE}"
65 "${MOBILENET_V2_MODULE}"
66 "${MOBILENET_V3SMALL_MODULE}"
67
68 BENCHMARK_MODES
69 "1-thread,big-core,full-inference,default-flags"
70 "1-thread,little-core,full-inference,default-flags"
71 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -070072 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +000073 TARGET_ARCHITECTURE
74 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -070075 COMPILATION_FLAGS
76 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +000077 BENCHMARK_TOOL
78 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -070079 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -070080 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +000081 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -070082 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +000083 RUNTIME_FLAGS
84 "--task_topology_group_count=1"
85)
86
87# TODO(#7792): Re-enable these when we are able to run different benchmarks
88# depending on use-case (presubmit, postsubmit, nightly, etc.)
89# iree_benchmark_suite(
90# GROUP_NAME
91# "android-arm64-v8a"
92#
93# MODULES
94# "${DEEPLABV3_FP32_MODULE}"
95# "${MOBILESSD_FP32_MODULE}"
96# "${POSENET_FP32_MODULE}"
97# "${MOBILEBERT_FP32_MODULE}"
98# "${MOBILENET_V2_MODULE}"
99# "${MOBILENET_V3SMALL_MODULE}"
100
101# BENCHMARK_MODES
102# "2-thread,big-core,full-inference,default-flags"
103# "2-thread,little-core,full-inference,default-flags"
104# TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700105# "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000106# TARGET_ARCHITECTURE
107# "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700108# COMPILATION_FLAGS
109# ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000110# BENCHMARK_TOOL
111# iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700112# CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700113# "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000114# DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700115# "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000116# RUNTIME_FLAGS
117# "--task_topology_group_count=2"
118# )
119
120# iree_benchmark_suite(
121# GROUP_NAME
122# "android-arm64-v8a"
123#
124# MODULES
125# "${DEEPLABV3_FP32_MODULE}"
126# "${MOBILESSD_FP32_MODULE}"
127# "${POSENET_FP32_MODULE}"
128# "${MOBILEBERT_FP32_MODULE}"
129# "${MOBILENET_V2_MODULE}"
130# "${MOBILENET_V3SMALL_MODULE}"
131
132# BENCHMARK_MODES
133# "3-thread,big-core,full-inference,default-flags"
134# "3-thread,little-core,full-inference,default-flags"
135# TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700136# "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000137# TARGET_ARCHITECTURE
138# "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700139# COMPILATION_FLAGS
140# ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000141# BENCHMARK_TOOL
142# iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700143# CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700144# "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000145# DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700146# "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000147# RUNTIME_FLAGS
148# "--task_topology_group_count=3"
149# )
150
151iree_benchmark_suite(
152 GROUP_NAME
153 "android-arm64-v8a"
154
155 MODULES
156 "${DEEPLABV3_FP32_MODULE}"
157 "${MOBILESSD_FP32_MODULE}"
158 "${POSENET_FP32_MODULE}"
159 "${MOBILEBERT_FP32_MODULE}"
160 "${MOBILEBERT_INT8_MODULE}"
161 "${MOBILENET_V2_MODULE}"
162 "${MOBILENET_V3SMALL_MODULE}"
163
164 BENCHMARK_MODES
165 "4-thread,big-core,full-inference,default-flags"
166 "4-thread,little-core,full-inference,default-flags"
167 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700168 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000169 TARGET_ARCHITECTURE
170 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700171 COMPILATION_FLAGS
172 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000173 BENCHMARK_TOOL
174 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700175 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700176 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000177 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700178 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000179 RUNTIME_FLAGS
180 "--task_topology_group_count=4"
181)
182
183################################################################################
184
185################################################################################
186# #
187# Specialized benchmark configurations #
188# #
189# Each suite benchmarks one or more module with configurations that can vary #
190# on model or architecture characteristics. These are intended for providing #
191# continuous benchmarks of experimental features that cannot be turned on by #
192# default yet. It is primarily intended for whoever is actively investigating #
193# optimizations for a feature exemplified in a specific model or architecture. #
194# Due to our current benchmark setup, there can only be one experimental #
195# configuration per model and other benchmark mode. #
196# #
197################################################################################
198
Scott Todd9a96d002022-08-11 22:13:05 -0700199# CPU, LLVM, local-sync, big/little-core, full-inference
Jerry Wuc59155f2022-06-01 23:46:18 +0000200# NOTE: this is not enabling any SIMD extension beyond baseline Aarch64.
201# At the moment we use that for fp32 models. We would change that when new
202# devices support relevant fp32 SIMD extensions beyond that (e.g. +f32mm).
203iree_benchmark_suite(
204 GROUP_NAME
205 "android-arm64-v8a"
206
207 MODULES
208 "${DEEPLABV3_FP32_MODULE}"
209 "${MOBILESSD_FP32_MODULE}"
210 "${POSENET_FP32_MODULE}"
211 "${MOBILEBERT_FP32_MODULE}"
212 "${MOBILENET_V2_MODULE}"
213 "${MOBILENET_V3SMALL_MODULE}"
214
215 BENCHMARK_MODES
216 "big-core,full-inference,experimental-flags"
217 "little-core,full-inference,experimental-flags"
218 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700219 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000220 TARGET_ARCHITECTURE
221 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700222 COMPILATION_FLAGS
223 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000224 "--iree-flow-mmt4d-target-options=arch=aarch64"
225 BENCHMARK_TOOL
226 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700227 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700228 "iree-llvm-cpu-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +0000229 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700230 "local-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +0000231)
232
Scott Todd9a96d002022-08-11 22:13:05 -0700233# CPU, LLVM, local-sync, big/little-core, full-inference, +dotprod
Jerry Wuc59155f2022-06-01 23:46:18 +0000234# NOTE: +dotprod is only relevant to int8, not fp32.
235# TODO: add a +i8mm variant, supported by new devices already. No rush: our i8mm
236# kernel is currently naive, not ready for benchmarking.
237iree_benchmark_suite(
238 GROUP_NAME
239 "android-arm64-v8a"
240
241 MODULES
242 "${MOBILEBERT_INT8_MODULE}"
243
244 BENCHMARK_MODES
245 "big-core,full-inference,experimental-flags"
246 "little-core,full-inference,experimental-flags"
247 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700248 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000249 TARGET_ARCHITECTURE
250 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700251 COMPILATION_FLAGS
252 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000253 "--iree-flow-mmt4d-target-options=arch=aarch64 features=+dotprod"
254 "--iree-llvm-target-cpu-features=+dotprod"
255 BENCHMARK_TOOL
256 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700257 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700258 "iree-llvm-cpu-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +0000259 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700260 "local-sync"
Jerry Wuc59155f2022-06-01 23:46:18 +0000261)
262
263# TODO(#7792): Consider re-enabling little-core experimental-flags if we start
264# optimizing for little cores or we can just run them occasionally
265
Scott Todd9a96d002022-08-11 22:13:05 -0700266# CPU, LLVM, local-task, 1 through 4 threads, big/little-core, full-inference.
Jerry Wuc59155f2022-06-01 23:46:18 +0000267# NOTE: this is not enabling any SIMD extension beyond baseline Aarch64.
268# At the moment we use that for fp32 models. We would change that when new
269# devices support relevant fp32 SIMD extensions beyond that (e.g. f32mm).
270iree_benchmark_suite(
271 GROUP_NAME
272 "android-arm64-v8a"
273
274 MODULES
275 "${DEEPLABV3_FP32_MODULE}"
276 "${MOBILESSD_FP32_MODULE}"
277 "${POSENET_FP32_MODULE}"
278 "${MOBILEBERT_FP32_MODULE}"
279 "${MOBILENET_V2_MODULE}"
280 "${MOBILENET_V3SMALL_MODULE}"
281
282 BENCHMARK_MODES
283 "1-thread,big-core,full-inference,experimental-flags"
284 # "1-thread,little-core,full-inference,experimental-flags"
285 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700286 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000287 TARGET_ARCHITECTURE
288 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700289 COMPILATION_FLAGS
290 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000291 "--iree-flow-mmt4d-target-options=arch=aarch64"
292 BENCHMARK_TOOL
293 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700294 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700295 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000296 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700297 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000298 RUNTIME_FLAGS
299 "--task_topology_group_count=1"
300)
301
Scott Todd9a96d002022-08-11 22:13:05 -0700302# CPU, LLVM, local-task, 1 through 4 threads, big/little-core, full-inference, +dotprod
Jerry Wuc59155f2022-06-01 23:46:18 +0000303# NOTE: +dotprod is only relevant to int8, not fp32.
304# TODO: add a +i8mm variant, supported by new devices already. No rush: our i8mm
305# kernel is currently naive, not ready for benchmarking.
306iree_benchmark_suite(
307 GROUP_NAME
308 "android-arm64-v8a"
309
310 MODULES
311 "${MOBILEBERT_INT8_MODULE}"
312
313 BENCHMARK_MODES
314 "1-thread,big-core,full-inference,experimental-flags"
315 # "1-thread,little-core,full-inference,experimental-flags"
316 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700317 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000318 TARGET_ARCHITECTURE
319 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700320 COMPILATION_FLAGS
321 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000322 "--iree-flow-mmt4d-target-options=arch=aarch64 features=+dotprod"
323 "--iree-llvm-target-cpu-features=+dotprod"
324 BENCHMARK_TOOL
325 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700326 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700327 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000328 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700329 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000330 RUNTIME_FLAGS
331 "--task_topology_group_count=1"
332)
333
334# TODO(#7792): Re-enable these when we are able to run different benchmarks
335# depending on use-case (presubmit, postsubmit, nightly, etc.)
336# iree_benchmark_suite(
337# GROUP_NAME
338# "android-arm64-v8a"
339#
340# MODULES
341# "${DEEPLABV3_FP32_MODULE}"
342# "${MOBILESSD_FP32_MODULE}"
343# "${POSENET_FP32_MODULE}"
344# "${MOBILEBERT_FP32_MODULE}"
345# "${MOBILENET_V2_MODULE}"
346# "${MOBILENET_V3SMALL_MODULE}"
347
348# BENCHMARK_MODES
349# "2-thread,big-core,full-inference,experimental-flags"
350# "2-thread,little-core,full-inference,experimental-flags"
351# TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700352# "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000353# TARGET_ARCHITECTURE
354# "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700355# COMPILATION_FLAGS
356# ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000357# "--iree-flow-mmt4d-target-options=arch=aarch64"
358# BENCHMARK_TOOL
359# iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700360# CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700361# "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000362# DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700363# "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000364# RUNTIME_FLAGS
365# "--task_topology_group_count=2"
366# )
367
368# iree_benchmark_suite(
369# GROUP_NAME
370# "android-arm64-v8a"
371#
372# MODULES
373# "${DEEPLABV3_FP32_MODULE}"
374# "${MOBILESSD_FP32_MODULE}"
375# "${POSENET_FP32_MODULE}"
376# "${MOBILEBERT_FP32_MODULE}"
377# "${MOBILENET_V2_MODULE}"
378# "${MOBILENET_V3SMALL_MODULE}"
379
380# BENCHMARK_MODES
381# "3-thread,big-core,full-inference,experimental-flags"
382# "3-thread,little-core,full-inference,experimental-flags"
383# TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700384# "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000385# TARGET_ARCHITECTURE
386# "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700387# COMPILATION_FLAGS
388# ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000389# "--iree-flow-mmt4d-target-options=arch=aarch64"
390# BENCHMARK_TOOL
391# iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700392# CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700393# "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000394# DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700395# "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000396# RUNTIME_FLAGS
397# "--task_topology_group_count=3"
398# )
399
Scott Todd9a96d002022-08-11 22:13:05 -0700400# CPU, LLVM, local-task, 1 through 4 threads, big/little-core, full-inference.
Jerry Wuc59155f2022-06-01 23:46:18 +0000401# NOTE: this is not enabling any SIMD extension beyond baseline Aarch64.
402# At the moment we use that for fp32 models. We would change that when new
403# devices support relevant fp32 SIMD extensions beyond that (e.g. f32mm).
404iree_benchmark_suite(
405 GROUP_NAME
406 "android-arm64-v8a"
407
408 MODULES
409 "${DEEPLABV3_FP32_MODULE}"
410 "${MOBILESSD_FP32_MODULE}"
411 "${POSENET_FP32_MODULE}"
412 "${MOBILEBERT_FP32_MODULE}"
413 "${MOBILENET_V2_MODULE}"
414 "${MOBILENET_V3SMALL_MODULE}"
415
416 BENCHMARK_MODES
417 "4-thread,big-core,full-inference,experimental-flags"
418 # "4-thread,little-core,full-inference,experimental-flags"
419 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700420 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000421 TARGET_ARCHITECTURE
422 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700423 COMPILATION_FLAGS
424 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000425 "--iree-flow-mmt4d-target-options=arch=aarch64"
426
427 BENCHMARK_TOOL
428 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700429 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700430 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000431 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700432 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000433 RUNTIME_FLAGS
434 "--task_topology_group_count=4"
435)
436
Scott Todd9a96d002022-08-11 22:13:05 -0700437# CPU, LLVM, local-sync, big/little-core, full-inference, +dotprod
Jerry Wuc59155f2022-06-01 23:46:18 +0000438# NOTE: +dotprod is only relevant to int8, not fp32.
439# TODO: add a +i8mm variant, supported by new devices already. No rush: our i8mm
440# kernel is currently naive, not ready for benchmarking.
441iree_benchmark_suite(
442 GROUP_NAME
443 "android-arm64-v8a"
444
445 MODULES
446 "${MOBILEBERT_INT8_MODULE}"
447
448 BENCHMARK_MODES
449 "4-thread,big-core,full-inference,experimental-flags"
450 # "4-thread,little-core,full-inference,experimental-flags"
451 TARGET_BACKEND
Scott Todd9a96d002022-08-11 22:13:05 -0700452 "llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000453 TARGET_ARCHITECTURE
454 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700455 COMPILATION_FLAGS
456 ${ANDROID_CPU_COMPILATION_FLAGS}
Jerry Wuc59155f2022-06-01 23:46:18 +0000457 "--iree-flow-mmt4d-target-options=arch=aarch64 features=+dotprod"
458 "--iree-llvm-target-cpu-features=+dotprod"
459
460 BENCHMARK_TOOL
461 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700462 CONFIG
Scott Todd9a96d002022-08-11 22:13:05 -0700463 "iree-llvm-cpu"
Jerry Wuc59155f2022-06-01 23:46:18 +0000464 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700465 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000466 RUNTIME_FLAGS
467 "--task_topology_group_count=4"
468)
469
470# CPU, VMVX, 4-thread, big-core, full-inference
471# VMVX is slow and we're not optimizing perf yet. Leaving in a single max-thread
472# benchmark because it's useful to keep an eye on and helps disambiguate where a
473# performance change may be coming from (e.g. if it's in vmvx as well, it's
474# probably not a codegen issue).
475iree_benchmark_suite(
476 GROUP_NAME
477 "android-arm64-v8a"
478
479 MODULES
480 "${MOBILENET_V2_MODULE}"
481 "${MOBILENET_V3SMALL_MODULE}"
482
483 BENCHMARK_MODES
484 "4-thread,big-core,full-inference,experimental-flags"
485 TARGET_BACKEND
486 "vmvx"
487 TARGET_ARCHITECTURE
488 "CPU-ARM64-v8A"
Scott Todd33a7caa2022-06-10 10:47:10 -0700489 COMPILATION_FLAGS
Jerry Wuc59155f2022-06-01 23:46:18 +0000490 "--iree-input-type=tosa"
491 BENCHMARK_TOOL
492 iree-benchmark-module
Ben Vanik33aa8b32022-06-07 11:06:15 -0700493 CONFIG
494 "iree-vmvx"
Jerry Wuc59155f2022-06-01 23:46:18 +0000495 DRIVER
Ben Vanik33aa8b32022-06-07 11:06:15 -0700496 "local-task"
Jerry Wuc59155f2022-06-01 23:46:18 +0000497 RUNTIME_FLAGS
498 "--task_topology_group_count=4"
499)
500
501################################################################################