]>
zoso.dev Git - nano-pow.git/log
Chris Duncan [Wed, 5 Feb 2025 05:02:37 +0000 (21:02 -0800)]
Technically, a valid nonce can be equal to the threshold, so fix the final comparison.
Chris Duncan [Wed, 5 Feb 2025 05:01:41 +0000 (21:01 -0800)]
Benchmarking shows vec4 version actually ended up being slower, probably due to increased overhead and register pressure. Revert to vec2 implementation.
Chris Duncan [Tue, 4 Feb 2025 21:38:32 +0000 (13:38 -0800)]
Move temp variables to be near other declarations in main.
Chris Duncan [Tue, 4 Feb 2025 21:36:28 +0000 (13:36 -0800)]
Expand documentation. Remove unused variables.
Chris Duncan [Tue, 4 Feb 2025 21:27:19 +0000 (13:27 -0800)]
Skip a couple unnecessary computations in the final G round. Implement literal of iv[0] used in digest.
Chris Duncan [Tue, 4 Feb 2025 21:18:11 +0000 (13:18 -0800)]
Finish reordering G round computation. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 21:13:01 +0000 (13:13 -0800)]
Reorder eigth through tenth G round computation. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 21:05:14 +0000 (13:05 -0800)]
Reorder fifth through seventh G round computation. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 19:30:44 +0000 (11:30 -0800)]
Reorder third and fourth G round computation. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 17:53:49 +0000 (09:53 -0800)]
Reorder second G round computation. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 13:57:56 +0000 (05:57 -0800)]
Reorder G round computation to try allowing compiler to improve instruction scheduling and reduce assignment statements. Compiles and validates.
Chris Duncan [Tue, 4 Feb 2025 13:44:31 +0000 (05:44 -0800)]
Deprecate unused zero vec4. Rename zero vec2 for brevity.
Chris Duncan [Tue, 4 Feb 2025 13:38:14 +0000 (05:38 -0800)]
Deprecate x and y temp vars for final two rounds.
Chris Duncan [Tue, 4 Feb 2025 13:34:27 +0000 (05:34 -0800)]
Deprecate x and y temp vars for ninth and tenth round.
Chris Duncan [Tue, 4 Feb 2025 03:54:31 +0000 (19:54 -0800)]
Deprecate x and y temp vars for sixth through eighth round.
Chris Duncan [Tue, 4 Feb 2025 03:02:11 +0000 (19:02 -0800)]
Deprecate x and y temp vars for fifth round.
Chris Duncan [Tue, 4 Feb 2025 02:55:20 +0000 (18:55 -0800)]
Deprecate x and y temp vars for fourth round.
Chris Duncan [Tue, 4 Feb 2025 00:35:59 +0000 (16:35 -0800)]
Update comments.
Chris Duncan [Tue, 4 Feb 2025 00:33:03 +0000 (16:33 -0800)]
Deprecate x and y temp vars for third round.
Chris Duncan [Tue, 4 Feb 2025 00:26:31 +0000 (16:26 -0800)]
Fill in comment headings with m[sigma] notes.
Chris Duncan [Mon, 3 Feb 2025 23:36:40 +0000 (15:36 -0800)]
Deprecate x and y temp vars for first two rounds.
Chris Duncan [Mon, 3 Feb 2025 23:19:56 +0000 (15:19 -0800)]
Compress v naming convention using hex convention.
Chris Duncan [Mon, 3 Feb 2025 23:15:59 +0000 (15:15 -0800)]
Convert eight sequential rounds of vec2 G mixing into parallelized four rounds of vec4 G. Read threshold direct from uniform to save a redundant assignment. Fix test page validation executing on every single input event. Delete benchmark file since it is completely outdated. Delete bundle to be reuploaded after tweaking new build. Update comment documentation.
Chris Duncan [Mon, 3 Feb 2025 05:24:44 +0000 (21:24 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 05:20:00 +0000 (21:20 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 05:16:04 +0000 (21:16 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 05:11:18 +0000 (21:11 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 05:06:28 +0000 (21:06 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 05:00:14 +0000 (21:00 -0800)]
Copy benchmark.
Chris Duncan [Mon, 3 Feb 2025 04:55:09 +0000 (20:55 -0800)]
Copy benchmark from compress-inline.
Chris Duncan [Mon, 3 Feb 2025 04:50:54 +0000 (20:50 -0800)]
Benchmark.
Chris Duncan [Mon, 3 Feb 2025 03:48:40 +0000 (19:48 -0800)]
Benchmark.
Chris Duncan [Sat, 1 Feb 2025 22:37:33 +0000 (14:37 -0800)]
Benchmark.
Chris Duncan [Fri, 31 Jan 2025 18:50:54 +0000 (10:50 -0800)]
Benchmarks.
Chris Duncan [Thu, 30 Jan 2025 18:03:32 +0000 (10:03 -0800)]
Benchmarks, now with a date.
Chris Duncan [Sat, 1 Feb 2025 21:40:59 +0000 (13:40 -0800)]
Notate benchmark.
Chris Duncan [Sat, 1 Feb 2025 21:29:09 +0000 (13:29 -0800)]
Benchmarks without early return.
Chris Duncan [Wed, 29 Jan 2025 22:44:25 +0000 (14:44 -0800)]
Log median values. Benchmark. Upload bundle for mobile testing.
Chris Duncan [Tue, 28 Jan 2025 00:23:47 +0000 (16:23 -0800)]
Zero-threshold benchmarks
Chris Duncan [Sun, 26 Jan 2025 08:20:52 +0000 (00:20 -0800)]
Overhaul NanoPowGl to use vector operations which greatly simplifies the Blake2b algorithm. Simplify nonce generation and work output by taking advantage of WebGL2 32-bit vector RGBA pixel type options. Fix validation in NanoPowGl by restricting result to passed nonce. Clean up unused variables. Minor test page fixes.
Chris Duncan [Sat, 25 Jan 2025 08:03:19 +0000 (00:03 -0800)]
Eliminate temporary variables from G.
Chris Duncan [Sat, 25 Jan 2025 07:30:23 +0000 (23:30 -0800)]
Check found flag only once per workgroup to avoid numerous competing atomic loads.
Chris Duncan [Sat, 25 Jan 2025 07:29:26 +0000 (23:29 -0800)]
Revert to single dimensional workgroup size since that apparently does in fact matter in regards to wavefronts and not just number of threads per workgroup.
Chris Duncan [Sat, 25 Jan 2025 07:15:48 +0000 (23:15 -0800)]
Remove useless found flag check from validate since it is only ever invoked once.
Chris Duncan [Sat, 25 Jan 2025 07:15:11 +0000 (23:15 -0800)]
Eliminate an atomic operation by performing an exchange if threshold passed.
Chris Duncan [Sat, 25 Jan 2025 07:13:44 +0000 (23:13 -0800)]
Remove redundant swizzles. Refactor 32-bit rotation to remove a swizzle operation.
Chris Duncan [Sat, 25 Jan 2025 07:12:43 +0000 (23:12 -0800)]
Validate work on test page with pizzazz.
Chris Duncan [Sat, 25 Jan 2025 07:11:43 +0000 (23:11 -0800)]
Validate input prior to setting busy flag to avoid perpetual busy status.
Chris Duncan [Thu, 23 Jan 2025 13:45:56 +0000 (05:45 -0800)]
Adjust truncated average calculation. Initialize benchmark min to max integer.
Chris Duncan [Tue, 21 Jan 2025 22:40:15 +0000 (14:40 -0800)]
Fix truncated benchmark calculation.
Chris Duncan [Tue, 21 Jan 2025 18:14:49 +0000 (10:14 -0800)]
Update README with new options object. Add example of async module loading in HTML. Reword global namespace pollution option to discourage it as a practice. Add sections for acknowledgements and licenses. Whitespace.
Chris Duncan [Tue, 21 Jan 2025 17:26:35 +0000 (09:26 -0800)]
Initialize digest constant as vec2 and initialize v0 from it. Update doc comments.
Chris Duncan [Tue, 21 Jan 2025 17:08:42 +0000 (09:08 -0800)]
Set default test run to 1.
Chris Duncan [Tue, 21 Jan 2025 17:08:11 +0000 (09:08 -0800)]
Reduce loop iteration by reading 64 bits at a time into UBO.
Chris Duncan [Mon, 20 Jan 2025 22:26:51 +0000 (14:26 -0800)]
Release version.
Chris Duncan [Mon, 20 Jan 2025 22:26:04 +0000 (14:26 -0800)]
Show API type in test page summary output.
Chris Duncan [Mon, 20 Jan 2025 22:18:42 +0000 (14:18 -0800)]
Remove nano-webgl-pow package since it is no longer used anywhere. Add copyright notice to type definition file.
Chris Duncan [Mon, 20 Jan 2025 22:03:22 +0000 (14:03 -0800)]
Add type description to NanoPowGl.
Chris Duncan [Mon, 20 Jan 2025 21:35:44 +0000 (13:35 -0800)]
Fix truncated time calculation. Remove repo minified main link.
Chris Duncan [Mon, 20 Jan 2025 18:51:23 +0000 (10:51 -0800)]
Add custom threshold to test page.
Chris Duncan [Mon, 20 Jan 2025 18:50:41 +0000 (10:50 -0800)]
Remove testing logs.
Chris Duncan [Mon, 20 Jan 2025 07:28:12 +0000 (23:28 -0800)]
Log iPhone benchmark.
Chris Duncan [Mon, 20 Jan 2025 07:24:36 +0000 (23:24 -0800)]
Simplify m initialization with swizzles, and switch them from var to let to enforce immutability.
Chris Duncan [Mon, 20 Jan 2025 07:03:00 +0000 (23:03 -0800)]
Log a longer benchmark.
Chris Duncan [Mon, 20 Jan 2025 06:41:23 +0000 (22:41 -0800)]
Log mapAsync times and remove validation for more accurate comparison testing.
Chris Duncan [Mon, 20 Jan 2025 06:11:20 +0000 (22:11 -0800)]
Zero-threshold benchmarks.
Chris Duncan [Mon, 20 Jan 2025 06:07:36 +0000 (22:07 -0800)]
Eliminate redundant console print function. Pass threshold of zero for test comparison purposes.
Chris Duncan [Sun, 19 Jan 2025 23:54:53 +0000 (15:54 -0800)]
Revert m[sigma] inlining due to complexity.
Chris Duncan [Sat, 18 Jan 2025 23:12:25 +0000 (15:12 -0800)]
Update import to repo URL.
Chris Duncan [Sat, 18 Jan 2025 23:06:27 +0000 (15:06 -0800)]
Upload bundle and add URL to test page for mobile testing purposes.
Chris Duncan [Sat, 18 Jan 2025 23:06:21 +0000 (15:06 -0800)]
Update typings.
Chris Duncan [Sat, 18 Jan 2025 06:58:58 +0000 (22:58 -0800)]
Super benchmarks.
Chris Duncan [Sat, 18 Jan 2025 05:43:00 +0000 (21:43 -0800)]
Remove comments about skipping and summarize their previous existence in the larger algorithm documentation.
Chris Duncan [Sat, 18 Jan 2025 02:54:04 +0000 (18:54 -0800)]
Inline remaining m[sigma] additions.
Chris Duncan [Sat, 18 Jan 2025 00:44:16 +0000 (16:44 -0800)]
Start inlining m[sigma] addition.
Chris Duncan [Fri, 17 Jan 2025 22:15:22 +0000 (14:15 -0800)]
Increase effort range in test page. Benchmarks.
Chris Duncan [Fri, 17 Jan 2025 22:05:22 +0000 (14:05 -0800)]
Increase allowed effort.
Chris Duncan [Fri, 17 Jan 2025 21:03:25 +0000 (13:03 -0800)]
Adjust test form element names and extract function so other event listeners can use them possibly.
Chris Duncan [Fri, 17 Jan 2025 21:01:31 +0000 (13:01 -0800)]
Log effort in test summary.
Chris Duncan [Fri, 17 Jan 2025 20:00:02 +0000 (12:00 -0800)]
Tweak test summary output.
Chris Duncan [Fri, 17 Jan 2025 19:12:26 +0000 (11:12 -0800)]
Adjust how effort is set. Log search parameters when debugging.
Chris Duncan [Fri, 17 Jan 2025 18:57:33 +0000 (10:57 -0800)]
Fix numbers being passed as strings and doing nothing.
Chris Duncan [Fri, 17 Jan 2025 18:47:09 +0000 (10:47 -0800)]
Avoid main function call entirely if work was already found.
Chris Duncan [Fri, 17 Jan 2025 18:40:12 +0000 (10:40 -0800)]
Implement busy status for gl. Wrap init in try block. Implement reset and average logging methods. Refactor checkqueryresult promises. Reset canvas size if user has changed effort. Add debug logging.
Chris Duncan [Fri, 17 Jan 2025 18:38:33 +0000 (10:38 -0800)]
Catch if nav.gpu does not exist. Make private method private. Fix rate reporting.
Chris Duncan [Fri, 17 Jan 2025 18:37:44 +0000 (10:37 -0800)]
Try to load gpu first.
Chris Duncan [Fri, 17 Jan 2025 18:37:28 +0000 (10:37 -0800)]
Tweak status outputs when testing.
Chris Duncan [Fri, 17 Jan 2025 16:17:13 +0000 (08:17 -0800)]
Fix bug with rate calculation on test page.
Chris Duncan [Thu, 16 Jan 2025 22:39:01 +0000 (14:39 -0800)]
Add long benchmark at optimal dispatch size.
Chris Duncan [Thu, 16 Jan 2025 22:17:21 +0000 (14:17 -0800)]
Pick out test page changes from other branch.
Chris Duncan [Thu, 16 Jan 2025 19:14:16 +0000 (11:14 -0800)]
Validate test run after computing work instead of during timer.
Chris Duncan [Thu, 16 Jan 2025 19:03:05 +0000 (11:03 -0800)]
Update dispatch size defaults to reflect the fact that 0x800 was fastest and so Effort of 8 is middle of the road and a good starting point for benchmarking.
Chris Duncan [Thu, 16 Jan 2025 18:59:32 +0000 (10:59 -0800)]
Log more benchmarks, and note that dispatch 0x800 and workgroup 8,8 was the best combination.
Chris Duncan [Thu, 16 Jan 2025 17:15:02 +0000 (09:15 -0800)]
Some benchmarks with updated shader.
Chris Duncan [Thu, 16 Jan 2025 17:14:50 +0000 (09:14 -0800)]
Grammar and math.
Chris Duncan [Thu, 16 Jan 2025 16:26:35 +0000 (08:26 -0800)]
Start taking new benchmarks with updated shader.
Chris Duncan [Thu, 16 Jan 2025 16:26:10 +0000 (08:26 -0800)]
Adjust debug table output. Increase base dispatch size.
Chris Duncan [Thu, 16 Jan 2025 15:30:04 +0000 (07:30 -0800)]
Prune steps from final round that do not affect final outcome.
Chris Duncan [Thu, 16 Jan 2025 15:21:38 +0000 (07:21 -0800)]
Some final steps are unnecessary since we only use v0 and v8 in the threshold comparison, and any steps uninvolved with their final values can be discarded.
Chris Duncan [Thu, 16 Jan 2025 15:03:32 +0000 (07:03 -0800)]
Write better documentation of G mixing algorithm and remove step-by-step comments to improve legibility and reduce scrolling.