summaryrefslogtreecommitdiff
path: root/VA
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2023-05-30 16:32:47 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2023-05-30 16:32:47 +0200
commitecf6521037c5a9340b137e3bf5df87790c33c58a (patch)
tree778fa7b9069e10aa6050f7bd896f606d4cfa9293 /VA
parentf167444c7acf9d0a558b076681c821915f6781b4 (diff)
VA: new dfatool format; -O and reproduction benchmarks
Diffstat (limited to 'VA')
-rw-r--r--VA/baselines/cpu/Makefile6
-rw-r--r--VA/baselines/cpu/app_baseline.c9
-rwxr-xr-xVA/baselines/cpu/run-opti.sh11
-rw-r--r--VA/host/app.c10
-rwxr-xr-xVA/run-paper-strong-rank.sh22
-rwxr-xr-xVA/run-paper-weak.sh22
6 files changed, 65 insertions, 15 deletions
diff --git a/VA/baselines/cpu/Makefile b/VA/baselines/cpu/Makefile
index 3171e19..fb7c383 100644
--- a/VA/baselines/cpu/Makefile
+++ b/VA/baselines/cpu/Makefile
@@ -16,13 +16,15 @@ va_O2: app_baseline.c
run: va
./va -t 4
+# -w/-e are not part of upstream config
+
.PHONY: run_O0
run_O0: va_O0
- ./va_O0 -t 4
+ ./va_O0 -t 4 -w 1 -e 100
.PHONY: run_O2
run_O2: va_O2
- ./va_O2 -t 4
+ ./va_O2 -t 4 -w 1 -e 100
.PHONY: clean
clean:
diff --git a/VA/baselines/cpu/app_baseline.c b/VA/baselines/cpu/app_baseline.c
index 3fdc10b..1ac6c14 100644
--- a/VA/baselines/cpu/app_baseline.c
+++ b/VA/baselines/cpu/app_baseline.c
@@ -137,16 +137,13 @@ int main(int argc, char **argv) {
nr_threads++;
if (rep >= p.n_warmup) {
- printf("[::] n_threads=%d e_type=%s n_elements=%d "
- "| throughput_cpu_MBps=%f\n",
+ printf("[::] VA CPU | n_threads=%d e_type=%s n_elements=%d "
+ "| throughput_MBps=%f",
nr_threads, XSTR(T), file_size,
file_size * 3 * sizeof(T) / timer.time[0]);
- printf("[::] n_threads=%d e_type=%s n_elements=%d "
- "| throughput_cpu_MOpps=%f\n",
+ printf(" throughput_MOpps=%f",
nr_threads, XSTR(T), file_size,
file_size / timer.time[0]);
- printf("[::] n_threads=%d e_type=%s n_elements=%d |",
- nr_threads, XSTR(T), file_size);
printall(&timer, 0);
}
}
diff --git a/VA/baselines/cpu/run-opti.sh b/VA/baselines/cpu/run-opti.sh
new file mode 100755
index 0000000..0a3a4a3
--- /dev/null
+++ b/VA/baselines/cpu/run-opti.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+HOST="$(hostname)"
+
+echo $HOST
+
+make clean
+
+make run_O0 | sed 's/CPU/CPU O0/' | tee "${HOST}-O0.txt"
+
+make run_O2 | sed 's/CPU/CPU O2/' | tee "${HOST}-O2.txt"
diff --git a/VA/host/app.c b/VA/host/app.c
index bfa6806..7758d65 100644
--- a/VA/host/app.c
+++ b/VA/host/app.c
@@ -187,20 +187,16 @@ int main(int argc, char **argv) {
if (status) {
printf("[" ANSI_COLOR_GREEN "OK" ANSI_COLOR_RESET "] Outputs are equal\n");
if (rep >= p.n_warmup) {
- printf("[::] n_dpus=%d n_tasklets=%d e_type=%s block_size_B=%d n_elements=%d "
- "| throughput_cpu_MBps=%f throughput_pim_MBps=%f throughput_MBps=%f\n",
+ printf("[::] VA NMC | n_dpus=%d n_tasklets=%d e_type=%s block_size_B=%d n_elements=%d "
+ "| throughput_cpu_MBps=%f throughput_pim_MBps=%f throughput_MBps=%f",
nr_of_dpus, NR_TASKLETS, XSTR(T), BLOCK_SIZE, input_size,
input_size * 3 * sizeof(T) / timer.time[0],
input_size * 3 * sizeof(T) / (timer.time[1]),
input_size * 3 * sizeof(T) / (timer.time[1] + timer.time[2] + timer.time[3]));
- printf("[::] n_dpus=%d n_tasklets=%d e_type=%s block_size_B=%d n_elements=%d "
- "| throughput_cpu_MOpps=%f throughput_pim_MOpps=%f throughput_MOpps=%f\n",
- nr_of_dpus, NR_TASKLETS, XSTR(T), BLOCK_SIZE, input_size,
+ printf(" throughput_cpu_MOpps=%f throughput_pim_MOpps=%f throughput_MOpps=%f\n",
input_size / timer.time[0],
input_size / (timer.time[1]),
input_size / (timer.time[1] + timer.time[2] + timer.time[3]));
- printf("[::] n_dpus=%d n_tasklets=%d e_type=%s block_size_B=%d n_elements=%d | ",
- nr_of_dpus, NR_TASKLETS, XSTR(T), BLOCK_SIZE, input_size);
printall(&timer, 3);
}
} else {
diff --git a/VA/run-paper-strong-rank.sh b/VA/run-paper-strong-rank.sh
new file mode 100755
index 0000000..671eafc
--- /dev/null
+++ b/VA/run-paper-strong-rank.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+# BL: use 2^(BL) B blocks for MRAM <-> WRAM transfers on PIM module
+# T: data type
+# -w: number of un-timed warmup iterations
+# -e: number of timed iterations
+# -i; ignored, always uses 262144 elements
+
+echo "prim-benchmarks VA strong-rank (dfatool edition)"
+echo "Started at $(date)"
+echo "Revision $(git describe --always)"
+
+for nr_dpus in 1 4 16 64; do
+ for nr_tasklets in 1 2 4 8 16; do
+ echo
+ if make -B NR_DPUS=${nr_dpus} NR_TASKLETS=${nr_tasklets} BL=10; then
+ timeout --foreground -k 1m 30m bin/host_code -w 0 -e 100 -i 2621440 -x 1 || true
+ fi
+ done
+done | tee log-paper-strong-rank.txt
diff --git a/VA/run-paper-weak.sh b/VA/run-paper-weak.sh
new file mode 100755
index 0000000..99eed79
--- /dev/null
+++ b/VA/run-paper-weak.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+# BL: use 2^(BL) B blocks for MRAM <-> WRAM transfers on PIM module
+# T: data type
+# -w: number of un-timed warmup iterations
+# -e: number of timed iterations
+# -i; ignored, always uses 262144 elements
+
+echo "prim-benchmarks VA weak (dfatool edition)"
+echo "Started at $(date)"
+echo "Revision $(git describe --always)"
+
+for nr_dpus in 1 4 16 64; do
+ for nr_tasklets in 1 2 4 8 16; do
+ echo
+ if make -B NR_DPUS=${nr_dpus} NR_TASKLETS=${nr_tasklets} BL=10; then
+ timeout --foreground -k 1m 30m bin/host_code -w 0 -e 100 -i 2621440 -x 0 || true
+ fi
+ done
+done | tee log-paper-weak.txt