summaryrefslogtreecommitdiff
path: root/Microbenchmarks/MRAM-Latency/run-transfer.sh
diff options
context:
space:
mode:
authorBirte Kristina Friesel <birte.friesel@uos.de>2023-12-15 14:07:05 +0100
committerBirte Kristina Friesel <birte.friesel@uos.de>2023-12-15 14:07:05 +0100
commitb58839b84fc85465bcb62b6e73ec35900e83da11 (patch)
tree792efd72039ff12c4b330ed620dcdfac4f8c41e3 /Microbenchmarks/MRAM-Latency/run-transfer.sh
parenteb118b2f743656434c0c77e5318eeacc38bd9924 (diff)
MRAM latency benchmark: report DMA latency and bandwidth; merge r/w modes
Diffstat (limited to 'Microbenchmarks/MRAM-Latency/run-transfer.sh')
-rwxr-xr-xMicrobenchmarks/MRAM-Latency/run-transfer.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/Microbenchmarks/MRAM-Latency/run-transfer.sh b/Microbenchmarks/MRAM-Latency/run-transfer.sh
new file mode 100755
index 0000000..f4b8e08
--- /dev/null
+++ b/Microbenchmarks/MRAM-Latency/run-transfer.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# The DPU application reads blocks of data from MRAM to WRAM via mram_read
+# and copies blocks of data from WRAM to MRAM via mram_write.
+# Each transfer handles BLOCK_SIZE (BL<<2) bytes via DMA.
+# Each DPU reports its total runtime, i.e., the number of cycles accumulated
+# over all mram_read or mram_write calls.
+# Total data size is 8192 uint64 elements, so 65536 B (64 KiB)
+# Overall throughput is 65536 B / dpu_seconds
+# Per-DPU throughput is 65536 B / (dpu_seconds * nr_tasklets)
+# Latency per mram_* call is dpu_seconds / dpu_count
+
+set -e
+
+(
+
+echo "prim-benchmarks MRAM microbenchmark (dfatool edition)"
+echo "Started at $(date)"
+echo "Revision $(git describe --always)"
+
+for ndpu in 1 4 8 16 32 48 64; do
+ for ntask in 1 2 4 8 12 16 20; do
+ for bl in 4 5 6 7 8 9 10 11; do
+ if make -B NR_DPUS=$ndpu NR_TASKLETS=$ntask BL=$bl; then
+ bin/host_code -w 0 -e 100 || true
+ fi
+ done
+ done
+done
+echo "Completed at $(date)"
+) | tee "log-$(hostname).txt"
+xz -v -9 -M 800M "log-$(hostname).txt"