]>
zoso.dev Git - libnemo.git/log
Chris Duncan [Tue, 1 Apr 2025 02:14:19 +0000 (19:14 -0700)]
Update dependencies and remove unused packages.
Chris Duncan [Mon, 13 Jan 2025 21:41:02 +0000 (13:41 -0800)]
Update nano-pow.
Chris Duncan [Mon, 13 Jan 2025 15:49:25 +0000 (07:49 -0800)]
Replace pow now that it is published separately on npm.
Chris Duncan [Mon, 13 Jan 2025 00:40:31 +0000 (16:40 -0800)]
Throw if NanoPow couldn't load.
Chris Duncan [Mon, 13 Jan 2025 00:37:44 +0000 (16:37 -0800)]
Install nano-pow from npm.
Chris Duncan [Sun, 12 Jan 2025 23:47:59 +0000 (15:47 -0800)]
Install NanoPow.
Chris Duncan [Fri, 10 Jan 2025 14:53:10 +0000 (06:53 -0800)]
Test how max workgroup size with single dimension dispatch affects mobile because it does pretty well for desktop as seen by the newest benchmark.
Chris Duncan [Thu, 9 Jan 2025 23:34:40 +0000 (15:34 -0800)]
Upload new bundle for testing.
Chris Duncan [Thu, 9 Jan 2025 23:33:48 +0000 (15:33 -0800)]
Confirm success of reinitialization after a device loss. I wish iOS would just play nice but oh well for now. Get rid of useless logging and redundant reset call.
Chris Duncan [Thu, 9 Jan 2025 23:26:10 +0000 (15:26 -0800)]
Seems like loss of this context was indeed the issue, and reinitializing seems to have allowed the process to continue. Trying new bundle.
Chris Duncan [Thu, 9 Jan 2025 23:17:10 +0000 (15:17 -0800)]
Context of this is lost when device is lost, so try targeting class members instead (unsure this will work since they are private).
Chris Duncan [Thu, 9 Jan 2025 23:11:54 +0000 (15:11 -0800)]
Log buffer to troubleshoot iOS device loss.
Chris Duncan [Thu, 9 Jan 2025 23:08:32 +0000 (15:08 -0800)]
Fix branch reference.
Chris Duncan [Thu, 9 Jan 2025 23:04:49 +0000 (15:04 -0800)]
Start versioning bundle upload to try avoiding Safari cache for testing.
Chris Duncan [Thu, 9 Jan 2025 23:02:40 +0000 (15:02 -0800)]
Upload new bundle for testing iOS.
Chris Duncan [Thu, 9 Jan 2025 23:01:48 +0000 (15:01 -0800)]
Try destroying buffers without optional chaining and see if Safari does not complain about that.
Chris Duncan [Thu, 9 Jan 2025 23:00:00 +0000 (15:00 -0800)]
Save some vertical space.
Chris Duncan [Thu, 9 Jan 2025 22:41:07 +0000 (14:41 -0800)]
Upload bundle for platform testing.
Chris Duncan [Thu, 9 Jan 2025 22:40:44 +0000 (14:40 -0800)]
Log a benchmark.
Chris Duncan [Thu, 9 Jan 2025 21:59:29 +0000 (13:59 -0800)]
To reduce file size, delete original shader saved as a comment.
Chris Duncan [Thu, 9 Jan 2025 21:58:44 +0000 (13:58 -0800)]
Replace last if statements with select.
Chris Duncan [Thu, 9 Jan 2025 21:53:11 +0000 (13:53 -0800)]
Replace if statements.
Chris Duncan [Thu, 9 Jan 2025 21:49:24 +0000 (13:49 -0800)]
Start replacing if statement conditional branching with select statements to avoid thread divergence.
Chris Duncan [Thu, 9 Jan 2025 21:48:55 +0000 (13:48 -0800)]
Take another benchmark.
Chris Duncan [Thu, 9 Jan 2025 21:39:38 +0000 (13:39 -0800)]
Deprecate G function.
Chris Duncan [Thu, 9 Jan 2025 21:33:31 +0000 (13:33 -0800)]
Inline G mix round 11. Inlining complete.
Chris Duncan [Thu, 9 Jan 2025 21:23:17 +0000 (13:23 -0800)]
Inline G mix round 10.
Chris Duncan [Thu, 9 Jan 2025 21:13:24 +0000 (13:13 -0800)]
Whitespace.
Chris Duncan [Thu, 9 Jan 2025 21:09:38 +0000 (13:09 -0800)]
Inline G mix round 9.
Chris Duncan [Thu, 9 Jan 2025 20:40:09 +0000 (12:40 -0800)]
Take a benchmark.
Chris Duncan [Thu, 9 Jan 2025 20:34:46 +0000 (12:34 -0800)]
Inline G mix round 8.
Chris Duncan [Thu, 9 Jan 2025 20:09:26 +0000 (12:09 -0800)]
Inline G mix round 7.
Chris Duncan [Thu, 9 Jan 2025 19:58:23 +0000 (11:58 -0800)]
Inline G mix round 6.
Chris Duncan [Thu, 9 Jan 2025 19:49:10 +0000 (11:49 -0800)]
Inline G mix round 5 (halfway there).
Chris Duncan [Thu, 9 Jan 2025 19:39:22 +0000 (11:39 -0800)]
Log another benchmark.
Chris Duncan [Thu, 9 Jan 2025 19:35:20 +0000 (11:35 -0800)]
Substitute if statements in original G mix function just to see additional benchmark changes.
Chris Duncan [Thu, 9 Jan 2025 19:34:46 +0000 (11:34 -0800)]
Benchmark medium workload after inlining 5 rounds of G mixing.
Chris Duncan [Thu, 9 Jan 2025 19:23:13 +0000 (11:23 -0800)]
Inline G mix round 4.
Chris Duncan [Thu, 9 Jan 2025 19:01:17 +0000 (11:01 -0800)]
Inline G mix round 3.
Chris Duncan [Thu, 9 Jan 2025 18:49:08 +0000 (10:49 -0800)]
Benchmark medium workload after inlining 3 rounds of G mixing. New best 19.5 ms!
Chris Duncan [Thu, 9 Jan 2025 18:41:45 +0000 (10:41 -0800)]
Inline G mix round 2.
Chris Duncan [Thu, 9 Jan 2025 18:24:15 +0000 (10:24 -0800)]
Remove semicolons from documentational comments so that they throw a compiler error if accidentally processed.
Chris Duncan [Thu, 9 Jan 2025 17:36:08 +0000 (09:36 -0800)]
Inline G mix 7 of round 1.
Chris Duncan [Thu, 9 Jan 2025 17:34:43 +0000 (09:34 -0800)]
Inline G mix 6 of round 1.
Chris Duncan [Thu, 9 Jan 2025 17:32:12 +0000 (09:32 -0800)]
Inline G mix 5 of round 1.
Chris Duncan [Thu, 9 Jan 2025 17:29:09 +0000 (09:29 -0800)]
Inline G mix 4 of round 1.
Chris Duncan [Thu, 9 Jan 2025 16:12:16 +0000 (08:12 -0800)]
Inline G mix 3 of round 1.
Chris Duncan [Thu, 9 Jan 2025 16:08:29 +0000 (08:08 -0800)]
Apply non-branching logic to original WebGL pow shader.
Chris Duncan [Thu, 9 Jan 2025 15:40:25 +0000 (07:40 -0800)]
Commit if statement replacement with select function, but do not replace all instances yet until mixing rounds are done being inlined.
Chris Duncan [Thu, 9 Jan 2025 15:21:55 +0000 (07:21 -0800)]
Inline G mis 2 of round 1.
Chris Duncan [Thu, 9 Jan 2025 15:14:47 +0000 (07:14 -0800)]
Inline G mix 1 of round 1.
Chris Duncan [Thu, 9 Jan 2025 15:11:09 +0000 (07:11 -0800)]
Inline G mix 0 of round 1.
Chris Duncan [Thu, 9 Jan 2025 14:59:46 +0000 (06:59 -0800)]
If reset is called, cpuBuffer is destroyed, so it does not make sense to then unmap it, so do that in the try block. Also try searching again after resetting.
Chris Duncan [Thu, 9 Jan 2025 13:56:39 +0000 (05:56 -0800)]
Upload new bundle for testing.
Chris Duncan [Thu, 9 Jan 2025 13:55:48 +0000 (05:55 -0800)]
Reset busy flag on device loss. Tighten try-catch block when getting results from GPU. Add reset function so it can be called automatically on device loss or manually on other errors.
Chris Duncan [Thu, 9 Jan 2025 08:15:07 +0000 (00:15 -0800)]
Add error handling to test page. Upload new bundle for testing.
Chris Duncan [Thu, 9 Jan 2025 08:08:53 +0000 (00:08 -0800)]
Implement busy flag to prevent concurrent initializations and searches. Rewrite init as async function. Explicitly destroy buffers if device is lost. Setup buffers and pipeline in separate function call. Refactor search into a while loop instead of recursive promises. Unmap CPU buffer as soon as possible. Do not retry search on caught error.
Chris Duncan [Wed, 8 Jan 2025 23:25:49 +0000 (15:25 -0800)]
Lay out inlining to all remaining rounds. New code is still commented out, so original G function calls still function as before.
Chris Duncan [Wed, 8 Jan 2025 23:16:27 +0000 (15:16 -0800)]
Add some whitespace to better delineate the start and end of the G mixing section.
Chris Duncan [Wed, 8 Jan 2025 22:55:49 +0000 (14:55 -0800)]
Upload new bundle for testing.
Chris Duncan [Wed, 8 Jan 2025 22:53:35 +0000 (14:53 -0800)]
Remove unused default exports that are now included in separate pow worker file.
Chris Duncan [Wed, 8 Jan 2025 22:53:07 +0000 (14:53 -0800)]
Adjust error handling to try catching iOS error with more meaningful messaging.
Chris Duncan [Wed, 8 Jan 2025 22:37:04 +0000 (14:37 -0800)]
Tweak layout of web page used for platform testing.
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.