From 5df97e468d41b658c65b0db437cb83712bc45e0b Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Thu, 9 Jan 2025 10:49:08 -0800 Subject: [PATCH] Benchmark medium workload after inlining 3 rounds of G mixing. New best 19.5 ms! --- benchmarks.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/benchmarks.md b/benchmarks.md index 032e3c5..cc71d39 100644 --- a/benchmarks.md +++ b/benchmarks.md @@ -45,6 +45,8 @@ Harmonic: 218.11823673331645 ms Minimum: 76.2000000178814 ms Maximum: 2999.9000000059605 ms + + PowGpu: Time to calculate proof-of-work for a send block 512 times Total: 187428.40000000596 ms Average: 366.07109375001164 ms @@ -72,6 +74,16 @@ Geometric: 211.25671228925867 ms Minimum: 21.600000023841858 ms Maximum: 2267.600000023842 ms +libnemo: Time to calculate proof-of-work for a send block 512 times +(after inlining 3 rounds of G mixing) +Total: 155547.09999996424 ms +Average: 303.80292968743015 ms +Harmonic: 118.19131857240315 ms +Geometric: 196.77234360098842 ms +Minimum: 19.5 ms +Maximum: 2140.2000000476837 ms + + PowGpu: Time to calculate proof-of-work for a send block 32 times Total: 8909.500000029802 ms @@ -99,12 +111,21 @@ Minimum: 25 ms Maximum: 1249.199999988079 ms libnemo: Time to calculate proof-of-work for a send block 32 times -Total: 9778.899999797344 ms (after inlining entire first G round) +Total: 9778.899999797344 ms Average: 305.590624993667 ms Harmonic: 120.65186396913916 ms Geometric: 193.85674573632113 ms Minimum: 23.69999998807907 ms Maximum: 1752.199999988079 ms +libnemo: Time to calculate proof-of-work for a send block 32 times +(after inlining 3 rounds of G mixing) +Total: 10425.399999856949 ms +Average: 325.79374999552965 ms +Harmonic: 150.5729403997282 ms +Geometric: 231.43806657572657 ms +Minimum: 31.900000035762787 ms +Maximum: 954.9000000357628 ms + In the following code, look at the fourth argument. Prepend it with `v&` and remove its `u` suffix. Then insert a parameter right after it with the same name except the digit is incremented by 1. For example, `G(&v, &v0, &v1, 8u, 16u, 24u, m0, m1, m2, m3);` becomes `G(&v, &v0, &v1, &v8, &v9, 16u, 24u, m0, m1, m2, m3);`. Make sure the ampersand is present and the digits are correct as described. Do not make any other modifications. -- 2.34.1