]>
zoso.dev Git - libnemo.git/log
Chris Duncan [Wed, 8 Jan 2025 22:30:05 +0000 (14:30 -0800)]
Save another benchmark with improved geometric mean and new best for minimum time at 21.6ms!
Chris Duncan [Wed, 8 Jan 2025 22:22:48 +0000 (14:22 -0800)]
Improve geometric mean by using log approach.
Chris Duncan [Wed, 8 Jan 2025 22:20:03 +0000 (14:20 -0800)]
Upload new bundle with inlined G round 0 for platform testing.
Chris Duncan [Wed, 8 Jan 2025 22:19:25 +0000 (14:19 -0800)]
Benchmark a couple more times now that G round 0 is completely inlined.
Chris Duncan [Wed, 8 Jan 2025 22:10:13 +0000 (14:10 -0800)]
Inline G mix 7 of round 0.
Chris Duncan [Wed, 8 Jan 2025 22:05:00 +0000 (14:05 -0800)]
Inline G mix 6 of round 0.
Chris Duncan [Wed, 8 Jan 2025 22:00:02 +0000 (14:00 -0800)]
Inline G mix 5 of round 0.
Chris Duncan [Wed, 8 Jan 2025 21:54:02 +0000 (13:54 -0800)]
Add a little more whitespace for legibility.
Chris Duncan [Wed, 8 Jan 2025 21:50:25 +0000 (13:50 -0800)]
Inline G mix 4 of round 0.
Chris Duncan [Wed, 8 Jan 2025 21:36:31 +0000 (13:36 -0800)]
Restore 6-hash pow test to check different hashes still generate correct pow beyond single Nano test vector block.
Chris Duncan [Wed, 8 Jan 2025 21:35:55 +0000 (13:35 -0800)]
Run a benchmark.
Chris Duncan [Wed, 8 Jan 2025 21:35:44 +0000 (13:35 -0800)]
Inline G mix 3 of round 0.
Chris Duncan [Wed, 8 Jan 2025 21:33:45 +0000 (13:33 -0800)]
Tweak comment.
Chris Duncan [Wed, 8 Jan 2025 20:35:11 +0000 (12:35 -0800)]
Inline G mix 2 of round 0. Interestingly, we can skip some instructions this way due to addition of zero doing nothing to mix values, but the operation itself will be left visible for documentation and possible troubleshooting. Also note that pow values are verified working at this commit.
Chris Duncan [Wed, 8 Jan 2025 20:21:33 +0000 (12:21 -0800)]
Adjust mix round subheading comments.
Chris Duncan [Wed, 8 Jan 2025 20:20:58 +0000 (12:20 -0800)]
Expand documentation of implementation details.
Chris Duncan [Wed, 8 Jan 2025 20:09:09 +0000 (12:09 -0800)]
Skip some pow perf tests while inlining G mix function.
Chris Duncan [Wed, 8 Jan 2025 20:08:33 +0000 (12:08 -0800)]
Inline G mix 1 of round 0.
Chris Duncan [Wed, 8 Jan 2025 20:06:06 +0000 (12:06 -0800)]
Adjust section headings.
Chris Duncan [Wed, 8 Jan 2025 16:35:46 +0000 (08:35 -0800)]
Inline G mix 0 of round 0.
Chris Duncan [Wed, 8 Jan 2025 16:31:44 +0000 (08:31 -0800)]
Start setting up inline of function call 0 of round 0.
Chris Duncan [Wed, 8 Jan 2025 16:21:09 +0000 (08:21 -0800)]
Add sectional comments to clearly delineate G mix rounds as this moves into inlining the G mix function which will be otherwise difficult to read and navigate.
Chris Duncan [Wed, 8 Jan 2025 16:20:21 +0000 (08:20 -0800)]
Remove comment relic.
Chris Duncan [Wed, 8 Jan 2025 15:30:56 +0000 (07:30 -0800)]
Simplify imports with additional path mappings. Remove deprecated worker code from pow classes now that it is handled externally.
Chris Duncan [Wed, 8 Jan 2025 15:10:08 +0000 (07:10 -0800)]
Overhaul project structure by separating NanoPow code from its worker interface, consolidating test and performance code into one directory, creating additional import path mappings, and renaming files in general.
Chris Duncan [Wed, 8 Jan 2025 13:43:34 +0000 (05:43 -0800)]
Fix name references for pow objects.
Chris Duncan [Wed, 8 Jan 2025 13:29:48 +0000 (05:29 -0800)]
Reorganize NanoPow into its own package.
Chris Duncan [Wed, 8 Jan 2025 05:01:07 +0000 (21:01 -0800)]
Offload shader code to separate file.
Chris Duncan [Wed, 8 Jan 2025 01:24:18 +0000 (17:24 -0800)]
Indicate units when bit shift constructing ID/
Chris Duncan [Tue, 7 Jan 2025 22:34:10 +0000 (14:34 -0800)]
Upload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 22:33:28 +0000 (14:33 -0800)]
Implement device lost promise property to handle loss gracefully by reinitializing. Adjust try-catch error logging message and just retry search instead of reinitializing class.
Chris Duncan [Tue, 7 Jan 2025 22:12:21 +0000 (14:12 -0800)]
Upload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 22:11:52 +0000 (14:11 -0800)]
Fix class reference used for static members within static context when this should be used. Small change to initialization so class can be reloaded if necessary. Implement try-catch if getting data from GPU throws so we can reinitialize.
Chris Duncan [Tue, 7 Jan 2025 22:06:07 +0000 (14:06 -0800)]
Fix test page header.
Chris Duncan [Tue, 7 Jan 2025 21:52:55 +0000 (13:52 -0800)]
Upload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 21:45:41 +0000 (13:45 -0800)]
Fix block perf test suite messages.
Chris Duncan [Tue, 7 Jan 2025 21:45:24 +0000 (13:45 -0800)]
Extend time interval between check for GPU device to save mobile device cycles.
Chris Duncan [Tue, 7 Jan 2025 21:38:28 +0000 (13:38 -0800)]
Couple more benchmarks.
Chris Duncan [Tue, 7 Jan 2025 21:38:18 +0000 (13:38 -0800)]
Throttle back workgroup size since apparently this value works with GPUs better and we're still checking over a billion nonces per dispatch; the probability of finding a nonce at this level is over 99.9%
Chris Duncan [Tue, 7 Jan 2025 21:31:06 +0000 (13:31 -0800)]
Refactor GPU device loading to avoid high promise stack.
Chris Duncan [Tue, 7 Jan 2025 21:29:22 +0000 (13:29 -0800)]
Switch block back to PowGpu.
Chris Duncan [Tue, 7 Jan 2025 21:29:10 +0000 (13:29 -0800)]
Set up canvas size for proper pow comparison testing.
Chris Duncan [Tue, 7 Jan 2025 21:06:21 +0000 (13:06 -0800)]
Restore all block performance tests. Fix PowGl execution.
Chris Duncan [Tue, 7 Jan 2025 20:32:19 +0000 (12:32 -0800)]
Merge redundant find function with calculate to form search function like PowGpu. Implement more of a promise-based pipeline through PowGl calculations.
Chris Duncan [Tue, 7 Jan 2025 14:49:32 +0000 (06:49 -0800)]
Inline G mix function addition steps to eliminate a function call.
Chris Duncan [Tue, 7 Jan 2025 13:54:18 +0000 (05:54 -0800)]
Log some more benchmarks. Switch back to PowGl for blocks, with the plan to later make PowGpu available behind a flag.
Chris Duncan [Tue, 7 Jan 2025 13:42:30 +0000 (05:42 -0800)]
Get rid of extraneous logging in PowGl.
Chris Duncan [Tue, 7 Jan 2025 13:41:06 +0000 (05:41 -0800)]
Rename and export PowGl for systems that don't support WebGPU. Update some other names.
Chris Duncan [Tue, 7 Jan 2025 04:46:33 +0000 (20:46 -0800)]
Avoid loading nano-webgl-pow entirely. Upload bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 02:33:15 +0000 (18:33 -0800)]
Remove final unused v array pointer.
Chris Duncan [Tue, 7 Jan 2025 02:31:04 +0000 (18:31 -0800)]
Replace v[d] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 02:26:32 +0000 (18:26 -0800)]
Replace v[c] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 01:57:00 +0000 (17:57 -0800)]
Replace v[b] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 01:55:04 +0000 (17:55 -0800)]
Remove replaced v[a] arguments.
Chris Duncan [Tue, 7 Jan 2025 01:39:23 +0000 (17:39 -0800)]
Remove v array now that individual variables have been confirmed.
Chris Duncan [Tue, 7 Jan 2025 01:38:48 +0000 (17:38 -0800)]
Try updating G mix function again; rounds need to be updated next.
Chris Duncan [Tue, 7 Jan 2025 01:27:44 +0000 (17:27 -0800)]
Revert array pointer dereferencing to troubleshoot invalid nonces.
Chris Duncan [Tue, 7 Jan 2025 01:21:39 +0000 (17:21 -0800)]
Revert some pointer implementations due to incorrect nonces now.
Chris Duncan [Tue, 7 Jan 2025 00:50:08 +0000 (16:50 -0800)]
Fix variable name.
Chris Duncan [Tue, 7 Jan 2025 00:30:41 +0000 (16:30 -0800)]
Refactor returned promises.
Chris Duncan [Mon, 6 Jan 2025 22:42:54 +0000 (14:42 -0800)]
notes
Chris Duncan [Mon, 6 Jan 2025 22:41:58 +0000 (14:41 -0800)]
Fix this later.
Chris Duncan [Mon, 6 Jan 2025 22:31:16 +0000 (14:31 -0800)]
Throw more specific error during search call. Revert workload again since research is saying mobile devices should be able to handle workgroups of 256.
Chris Duncan [Mon, 6 Jan 2025 21:14:31 +0000 (13:14 -0800)]
Upload bundle for platform testing.
Chris Duncan [Mon, 6 Jan 2025 21:13:26 +0000 (13:13 -0800)]
Set workload dynamically based on hardware.
Chris Duncan [Mon, 6 Jan 2025 20:54:37 +0000 (12:54 -0800)]
Eliminate redundant find function. Rename #calculate to search in order to both better represent its purpose as well as work around Safari limitation on private class methods.
Chris Duncan [Mon, 6 Jan 2025 20:25:12 +0000 (12:25 -0800)]
Note long benchmark run.
Chris Duncan [Mon, 6 Jan 2025 19:28:37 +0000 (11:28 -0800)]
Skip nano-webgl-pow test comparison for now.
Chris Duncan [Mon, 6 Jan 2025 19:27:15 +0000 (11:27 -0800)]
Upload bundle for testing.
Chris Duncan [Mon, 6 Jan 2025 19:24:30 +0000 (11:24 -0800)]
Convert first of four v accessors to pointer references.
Chris Duncan [Mon, 6 Jan 2025 19:24:02 +0000 (11:24 -0800)]
Benchmark min and max times, and add another round of testing.
Chris Duncan [Mon, 6 Jan 2025 18:59:54 +0000 (10:59 -0800)]
Move benchmarks notes and add new timings.
Chris Duncan [Mon, 6 Jan 2025 17:37:04 +0000 (09:37 -0800)]
Wait a maximum of 8 seconds to load GPU.
Chris Duncan [Mon, 6 Jan 2025 17:02:13 +0000 (09:02 -0800)]
Remove outdated documentation comment.
Chris Duncan [Mon, 6 Jan 2025 16:31:20 +0000 (08:31 -0800)]
Eliminate m array. Fix nonce construction.
Chris Duncan [Mon, 6 Jan 2025 15:28:23 +0000 (07:28 -0800)]
Pass literal zeros since these array indexes are never initialized.
Chris Duncan [Mon, 6 Jan 2025 15:00:38 +0000 (07:00 -0800)]
Yep, it was an issue.
Chris Duncan [Mon, 6 Jan 2025 14:54:46 +0000 (06:54 -0800)]
Delete unused parameter.
Chris Duncan [Mon, 6 Jan 2025 14:53:24 +0000 (06:53 -0800)]
Update G mix rounds 6-11.
Chris Duncan [Mon, 6 Jan 2025 14:41:27 +0000 (06:41 -0800)]
Update G mix round 5 (round 4 was done in previous commit).
Chris Duncan [Mon, 6 Jan 2025 14:38:58 +0000 (06:38 -0800)]
Document odd difference between blake C reference implementation and nano-webgl-pow port that might need fixing later.
Chris Duncan [Mon, 6 Jan 2025 13:47:55 +0000 (05:47 -0800)]
Update G mix round 3.
Chris Duncan [Mon, 6 Jan 2025 13:45:35 +0000 (05:45 -0800)]
Update G mix round 2.
Chris Duncan [Mon, 6 Jan 2025 13:39:40 +0000 (05:39 -0800)]
Intermediate update to convert m array lookups to variables. Remaining 10 rounds of G mixing must be converted still.
Chris Duncan [Mon, 6 Jan 2025 13:27:21 +0000 (05:27 -0800)]
Substitute remaining SIGMA82 array lookups with literal values.
Chris Duncan [Mon, 6 Jan 2025 07:37:41 +0000 (23:37 -0800)]
Push new bundle for testing.
Chris Duncan [Mon, 6 Jan 2025 00:25:19 +0000 (16:25 -0800)]
Restore SIGMA82 definition until substitution is complete. Substitute array indexes for first 6 rounds, last 6 will come soon.
Chris Duncan [Mon, 6 Jan 2025 00:10:39 +0000 (16:10 -0800)]
Start eliminating SIGMA index lookups.
Chris Duncan [Sun, 5 Jan 2025 23:32:23 +0000 (15:32 -0800)]
Remove unused addition function.
Chris Duncan [Sun, 5 Jan 2025 23:31:19 +0000 (15:31 -0800)]
Document addition steps using structure from blake reference material.
Chris Duncan [Sun, 5 Jan 2025 22:40:10 +0000 (14:40 -0800)]
Inline 64-bit addition to eliminate a function call.
Chris Duncan [Sun, 5 Jan 2025 19:54:25 +0000 (11:54 -0800)]
Back up rolled-up shader code.
Chris Duncan [Sun, 5 Jan 2025 11:27:39 +0000 (03:27 -0800)]
Reintroduce workload variable to allow hardware to control workgroup size, considered most important control in that regard.
Chris Duncan [Sun, 5 Jan 2025 11:24:33 +0000 (03:24 -0800)]
All arrays will eventually be deconstructed for performance, so start creating the variables now.
Chris Duncan [Sun, 5 Jan 2025 11:09:32 +0000 (03:09 -0800)]
Remove logging.
Chris Duncan [Sun, 5 Jan 2025 11:09:24 +0000 (03:09 -0800)]
Set local variable for UBO member to avoid slowly dereferencing it.
Chris Duncan [Sun, 5 Jan 2025 10:47:09 +0000 (02:47 -0800)]
Unroll blake compression rounds.
Chris Duncan [Sun, 5 Jan 2025 10:46:51 +0000 (02:46 -0800)]
PoW does not need to be secure, so just use basic fast PRNG.
Chris Duncan [Sun, 5 Jan 2025 10:08:17 +0000 (02:08 -0800)]
Restart calculatino if nonce is not found, in order to accomodate smaller workgroup sizes. Suboptimal but can be improved later.
Chris Duncan [Sun, 5 Jan 2025 09:39:05 +0000 (01:39 -0800)]
Skip original pow tests for now. Reduce test suite size.