]> git.codecow.com Git - libnemo.git/commitdiff
Delete ancient benchmarks.
authorChris Duncan <chris@zoso.dev>
Fri, 4 Jul 2025 07:48:13 +0000 (00:48 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 4 Jul 2025 07:48:13 +0000 (00:48 -0700)
benchmarks.md [deleted file]

diff --git a/benchmarks.md b/benchmarks.md
deleted file mode 100644 (file)
index fc2f5a9..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-<!--
-SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
-SPDX-License-Identifier: GPL-3.0-or-later
--->
-
-PASS  Original PoW module: Time to calculate proof-of-work for a send block 16 times
-Total: 89756 ms
-Average: 5609.75 ms
-Harmonic: 2092.567565254879 ms
-Geometric: 3612.112662613675 ms
-
-PASS  Customized PoW: Time to calculate proof-of-work for a send block 16 times
-Total: 33240 ms
-Average: 2077.5 ms
-Harmonic: 1328.5635414262717 ms
-Geometric: 1663.110986923899 ms
-
-How much faster?
-Total:    56156 ms
-Average:   3532 ms
-Harmonic:   764 ms
-Geometric: 1949 ms
-
-Another PowGl test:
-Total: 22831.300000041723 ms
-Average: 3805.2166666736207 ms
-Harmonic: 928.6432328540742 ms
-Geometric: 2500.810238375608 ms
-Minimum: 193 ms
-Maximum: 8361 ms
-
-The proof-of-work equation for Nano cryptocurrency is defined as `blake2b(nonce||blockhash)>=threshold` where blake2b is the hash function configured for an 8-byte output, nonce is a random 8-byte value, || is concatenation, blockhash is a 32-byte value, and threshold is 0xfffffff800000000.
-
-My code currently finds valid nonces on a gaming GPU without issue but only because the initial search space is so large due to using a workgroup size of 256 and a dispatch of (256, 256, 256), so the probability of finding a nonce in the first pass is extremely high. However, this does not perform well on less powerful hardware like smartphones. Please alter my code to perform the nonce search in `main()` in a loop until a valid nonce is found with the idea that a smaller workgroup size and/or smaller dispatch dimensions can allow weak hardware to nonetheless iterate through nonces to search for a valid one and return it.
-
-
-Total: 680948 ms
-Average: 1329.9765625 ms
-Harmonic: 749.6552658409396 ms
-PASS  Customized PoW: Time to calculate proof-of-work for a send block 512 times
-
-
-
-CHROMIUM with more accurate timings
-
-PowGpu: Time to calculate proof-of-work for a send block 8192 times
-Total: 2934170.3000008166 ms
-Average: 358.17508544931843 ms
-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
-Harmonic: 220.70399520519166 ms
-
-PowGpu: Time to calculate proof-of-work for a send block 512 times
-Total: 187827.7999998629 ms
-Average: 366.85117187473224 ms
-Harmonic: 223.9897252426498 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining entire first G round)
-Total: 156981.3999993205 ms
-Average: 306.60429687367287 ms
-Harmonic: 128.74904701127866 ms
-Minimum: 21.700000047683716 ms
-Maximum: 1981.199999988079 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining entire first G round)
-Total: 162225.30000036955 ms
-Average: 316.8462890632218 ms
-Harmonic: 130.50451885939313 ms
-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
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining 5 rounds of G mixing)
-Total: 165145.19999998808 ms
-Average: 322.5492187499767 ms
-Harmonic: 126.40822610460997 ms
-Geometric: 205.28427810986508 ms
-Minimum: 20.099999964237213 ms
-Maximum: 1850.5 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining 5 rounds of G mixing and replacing if with select in original G function)
-Total: 135665.40000021458 ms
-Average: 264.9714843754191 ms
-Harmonic: 118.80915172412905 ms
-Geometric: 181.19191881133972 ms
-Minimum: 19.599999964237213 ms
-Maximum: 1908.5 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining 9 rounds of G mixing and replacing if with select in original G function)
-Total: 147481.09999907017 ms
-Average: 288.0490234356839 ms
-Harmonic: 122.25335314983455 ms
-Geometric: 192.75325397221323 ms
-Minimum: 22.19999998807907 ms
-Maximum: 1762.800000011921 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining all rounds of G mixing)
-Total: 165041.20000058413 ms
-Average: 322.34609375114087 ms
-Harmonic: 121.30652845909019 ms
-Geometric: 202.80092012876665 ms
-Minimum: 21.69999998807907 ms
-Maximum: 2303 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after inlining all rounds of G mixing and all if statements replaced with select function)
-Total: 134865.20000064373 ms
-Average: 263.4085937512573 ms
-Harmonic: 108.28019222737286 ms
-Geometric: 171.8797089689105 ms
-Minimum: 20.80000001192093 ms
-Maximum: 2093.199999988079 ms
-
-libnemo: Time to calculate proof-of-work for a send block 512 times
-(after increasing workgroup_size to 256 from 64 and decreasing dispatch size)
-Total: 149857.0999999717 ms
-Average: 292.6896484374447 ms
-Harmonic: 73.49751645489904 ms
-Geometric: 174.9560632035056 ms
-Minimum: 2.600000001490116 ms
-Maximum: 2364.5999999940395 ms
-
-GLOBALS.mjs:46 PASS  libnemo: Time to calculate proof-of-work for a send block 512 times
-(after increasing workgroup_size to 256 from 64 and decreasing dispatch size)
-Total: 145201.70000004023 ms
-Average: 283.5970703125786 ms
-Harmonic: 54.2894989554052 ms
-Geometric: 155.58659283933008 ms
-Minimum: 2.5 ms
-Maximum: 1812.3999999985099 ms
-
-
-
-PowGpu: Time to calculate proof-of-work for a send block 32 times
-Total: 8909.500000029802 ms
-Average: 278.4218750009313 ms
-Harmonic: 191.49100480215873 ms
-Geometric: 232.13670548729021 ms
-Minimum: 76.69999998807907 ms
-Maximum: 641.5 ms
-
-PowGpu: Time to calculate proof-of-work for a send block 32 times
-Total: 11805.200000077486 ms
-Average: 368.91250000242144 ms
-Harmonic: 131.36379466491744 ms
-Geometric: 228.69384924435158 ms
-Minimum: 21.900000005960464 ms
-Maximum: 1479.5 ms
-
-libnemo: Time to calculate proof-of-work for a send block 32 times
-(after inlining three G calls)
-Total: 11208.399999916553 ms
-Average: 350.2624999973923 ms
-Harmonic: 115.78621253028925 ms
-Geometric: 210.41080264689026 ms
-Minimum: 25 ms
-Maximum: 1249.199999988079 ms
-
-libnemo: Time to calculate proof-of-work for a send block 32 times
-(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.