You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update on "Add GEMM-based standard SDPA benchmark"
Add bench_sdpa.cpp with a standalone GEMM-based SDPA implementation
(run_standard_sdpa) alongside ExecuTorch's tiled flash attention
(custom_sdpa_out) for comparative benchmarking.
The standalone SDPA uses full GEMM per head with 3-pass softmax and
supports both [B,S,H,D] and [B,H,S,D] layouts via BLAS leading
dimension parameters, allowing isolation of algorithm vs layout effects.
Includes validation tests that verify the GEMM-based implementation
matches custom_sdpa_out within tolerance.
Differential Revision: [D96044313](https://our.internmc.facebook.com/intern/diff/D96044313/)
[ghstack-poisoned]
Copy file name to clipboardExpand all lines: backends/arm/scripts/run_fvp.sh
+50-3Lines changed: 50 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ _setup_msg="please refer to ${et_root_dir}/examples/arm/setup.sh to properly ins
19
19
20
20
elf_file=""
21
21
data_file=""
22
+
bundle_file=""
22
23
target="ethos-u55-128"
23
24
timeout="600"
24
25
etrecord_file=""
@@ -29,6 +30,7 @@ help() {
29
30
echo"Options:"
30
31
echo" --elf=<ELF_FILE> elf file to run"
31
32
echo" --data=<FILE>@<ADDRESS> Place a file in memory at this address, useful to emulate a PTE flashed into memory instead as part of the code."
33
+
echo" --bundle=<BPTE_FILE> Bundled program (.bpte) to load via semihosting. Required for cortex-m targets; the FVP launches a semihosting executor_runner that reads the bundle from the host filesystem and checks the embedded reference outputs."
32
34
echo" --target=<TARGET> Target to build and run for Default: ${target}"
33
35
echo" --timeout=<TIME_IN_SEC> Maximum target runtime, used to detect hanging, might need to be higer on large models Default: ${timeout}"
34
36
echo" --etrecord=<FILE> If ETDump is used you can supply a ETRecord file matching the PTE"
@@ -41,6 +43,7 @@ for arg in "$@"; do
41
43
-h|--help) help ;;
42
44
--elf=*) elf_file="${arg#*=}";;
43
45
--data=*) data_file="--data ${arg#*=}";;
46
+
--bundle=*) bundle_file="${arg#*=}";;
44
47
--target=*) target="${arg#*=}";;
45
48
--timeout=*) timeout="${arg#*=}";;
46
49
--etrecord=*) etrecord_file="${arg#*=}";;
@@ -52,7 +55,9 @@ done
52
55
53
56
elf_file=$(realpath ${elf_file})
54
57
55
-
if [[ ${target}==*"ethos-u55"* ]];then
58
+
# cortex-m55 is the only Cortex-M CPU on the Corstone-300 board today;
59
+
# cortex-m85 lives on Corstone-320, so it falls through to the SSE-320 FVP.
60
+
if [[ ${target}==*"ethos-u55"*||${target}== cortex-m55* ]];then
0 commit comments