]> zoso.dev Git - libnemo.git/log
libnemo.git
3 months agoApply non-branching logic to original WebGL pow shader.
Chris Duncan [Thu, 9 Jan 2025 16:08:29 +0000 (08:08 -0800)]
Apply non-branching logic to original WebGL pow shader.

3 months agoCommit if statement replacement with select function, but do not replace all instance...
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.

3 months agoInline G mis 2 of round 1.
Chris Duncan [Thu, 9 Jan 2025 15:21:55 +0000 (07:21 -0800)]
Inline G mis 2 of round 1.

3 months agoInline G mix 1 of round 1.
Chris Duncan [Thu, 9 Jan 2025 15:14:47 +0000 (07:14 -0800)]
Inline G mix 1 of round 1.

3 months agoInline G mix 0 of round 1.
Chris Duncan [Thu, 9 Jan 2025 15:11:09 +0000 (07:11 -0800)]
Inline G mix 0 of round 1.

3 months agoIf reset is called, cpuBuffer is destroyed, so it does not make sense to then unmap...
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.

3 months agoUpload new bundle for testing.
Chris Duncan [Thu, 9 Jan 2025 13:56:39 +0000 (05:56 -0800)]
Upload new bundle for testing.

3 months agoReset busy flag on device loss. Tighten try-catch block when getting results from...
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.

3 months agoAdd error handling to test page. Upload new bundle for testing.
Chris Duncan [Thu, 9 Jan 2025 08:15:07 +0000 (00:15 -0800)]
Add error handling to test page. Upload new bundle for testing.

3 months agoImplement busy flag to prevent concurrent initializations and searches. Rewrite init...
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.

3 months agoLay out inlining to all remaining rounds. New code is still commented out, so origina...
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.

3 months agoAdd some whitespace to better delineate the start and end of the G mixing section.
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.

3 months agoUpload new bundle for testing.
Chris Duncan [Wed, 8 Jan 2025 22:55:49 +0000 (14:55 -0800)]
Upload new bundle for testing.

3 months agoRemove unused default exports that are now included in separate pow worker file.
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.

3 months agoAdjust error handling to try catching iOS error with more meaningful messaging.
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.

3 months agoTweak layout of web page used for platform testing.
Chris Duncan [Wed, 8 Jan 2025 22:37:04 +0000 (14:37 -0800)]
Tweak layout of web page used for platform testing.

3 months agoSave another benchmark with improved geometric mean and new best for minimum time...
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!

3 months agoImprove geometric mean by using log approach.
Chris Duncan [Wed, 8 Jan 2025 22:22:48 +0000 (14:22 -0800)]
Improve geometric mean by using log approach.

3 months agoUpload new bundle with inlined G round 0 for platform testing.
Chris Duncan [Wed, 8 Jan 2025 22:20:03 +0000 (14:20 -0800)]
Upload new bundle with inlined G round 0 for platform testing.

3 months agoBenchmark a couple more times now that G round 0 is completely inlined.
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.

3 months agoInline G mix 7 of round 0.
Chris Duncan [Wed, 8 Jan 2025 22:10:13 +0000 (14:10 -0800)]
Inline G mix 7 of round 0.

3 months agoInline G mix 6 of round 0.
Chris Duncan [Wed, 8 Jan 2025 22:05:00 +0000 (14:05 -0800)]
Inline G mix 6 of round 0.

3 months agoInline G mix 5 of round 0.
Chris Duncan [Wed, 8 Jan 2025 22:00:02 +0000 (14:00 -0800)]
Inline G mix 5 of round 0.

3 months agoAdd a little more whitespace for legibility.
Chris Duncan [Wed, 8 Jan 2025 21:54:02 +0000 (13:54 -0800)]
Add a little more whitespace for legibility.

3 months agoInline G mix 4 of round 0.
Chris Duncan [Wed, 8 Jan 2025 21:50:25 +0000 (13:50 -0800)]
Inline G mix 4 of round 0.

3 months agoRestore 6-hash pow test to check different hashes still generate correct pow beyond...
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.

3 months agoRun a benchmark.
Chris Duncan [Wed, 8 Jan 2025 21:35:55 +0000 (13:35 -0800)]
Run a benchmark.

3 months agoInline G mix 3 of round 0.
Chris Duncan [Wed, 8 Jan 2025 21:35:44 +0000 (13:35 -0800)]
Inline G mix 3 of round 0.

3 months agoTweak comment.
Chris Duncan [Wed, 8 Jan 2025 21:33:45 +0000 (13:33 -0800)]
Tweak comment.

3 months agoInline G mix 2 of round 0. Interestingly, we can skip some instructions this way...
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.

3 months agoAdjust mix round subheading comments.
Chris Duncan [Wed, 8 Jan 2025 20:21:33 +0000 (12:21 -0800)]
Adjust mix round subheading comments.

3 months agoExpand documentation of implementation details.
Chris Duncan [Wed, 8 Jan 2025 20:20:58 +0000 (12:20 -0800)]
Expand documentation of implementation details.

3 months agoSkip some pow perf tests while inlining G mix function.
Chris Duncan [Wed, 8 Jan 2025 20:09:09 +0000 (12:09 -0800)]
Skip some pow perf tests while inlining G mix function.

3 months agoInline G mix 1 of round 0.
Chris Duncan [Wed, 8 Jan 2025 20:08:33 +0000 (12:08 -0800)]
Inline G mix 1 of round 0.

3 months agoAdjust section headings.
Chris Duncan [Wed, 8 Jan 2025 20:06:06 +0000 (12:06 -0800)]
Adjust section headings.

3 months agoInline G mix 0 of round 0.
Chris Duncan [Wed, 8 Jan 2025 16:35:46 +0000 (08:35 -0800)]
Inline G mix 0 of round 0.

3 months agoStart setting up inline of function call 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.

3 months agoAdd sectional comments to clearly delineate G mix rounds as this moves into inlining...
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.

3 months agoRemove comment relic.
Chris Duncan [Wed, 8 Jan 2025 16:20:21 +0000 (08:20 -0800)]
Remove comment relic.

3 months agoSimplify imports with additional path mappings. Remove deprecated worker code from...
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.

3 months agoOverhaul project structure by separating NanoPow code from its worker interface,...
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.

3 months agoFix name references for pow objects.
Chris Duncan [Wed, 8 Jan 2025 13:43:34 +0000 (05:43 -0800)]
Fix name references for pow objects.

3 months agoReorganize NanoPow into its own package.
Chris Duncan [Wed, 8 Jan 2025 13:29:48 +0000 (05:29 -0800)]
Reorganize NanoPow into its own package.

3 months agoOffload shader code to separate file.
Chris Duncan [Wed, 8 Jan 2025 05:01:07 +0000 (21:01 -0800)]
Offload shader code to separate file.

3 months agoIndicate units when bit shift constructing ID/
Chris Duncan [Wed, 8 Jan 2025 01:24:18 +0000 (17:24 -0800)]
Indicate units when bit shift constructing ID/

3 months agoUpload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 22:34:10 +0000 (14:34 -0800)]
Upload new bundle for platform testing.

3 months agoImplement device lost promise property to handle loss gracefully by reinitializing...
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.

3 months agoUpload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 22:12:21 +0000 (14:12 -0800)]
Upload new bundle for platform testing.

3 months agoFix class reference used for static members within static context when this should...
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.

3 months agoFix test page header.
Chris Duncan [Tue, 7 Jan 2025 22:06:07 +0000 (14:06 -0800)]
Fix test page header.

3 months agoUpload new bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 21:52:55 +0000 (13:52 -0800)]
Upload new bundle for platform testing.

3 months agoFix block perf test suite messages.
Chris Duncan [Tue, 7 Jan 2025 21:45:41 +0000 (13:45 -0800)]
Fix block perf test suite messages.

3 months agoExtend time interval between check for GPU device to save mobile device cycles.
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.

3 months agoCouple more benchmarks.
Chris Duncan [Tue, 7 Jan 2025 21:38:28 +0000 (13:38 -0800)]
Couple more benchmarks.

3 months agoThrottle back workgroup size since apparently this value works with GPUs better and...
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%

3 months agoRefactor GPU device loading to avoid high promise stack.
Chris Duncan [Tue, 7 Jan 2025 21:31:06 +0000 (13:31 -0800)]
Refactor GPU device loading to avoid high promise stack.

3 months agoSwitch block back to PowGpu.
Chris Duncan [Tue, 7 Jan 2025 21:29:22 +0000 (13:29 -0800)]
Switch block back to PowGpu.

3 months agoSet up canvas size for proper pow comparison testing.
Chris Duncan [Tue, 7 Jan 2025 21:29:10 +0000 (13:29 -0800)]
Set up canvas size for proper pow comparison testing.

3 months agoRestore all block performance tests. Fix PowGl execution.
Chris Duncan [Tue, 7 Jan 2025 21:06:21 +0000 (13:06 -0800)]
Restore all block performance tests. Fix PowGl execution.

3 months agoMerge redundant find function with calculate to form search function like PowGpu...
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.

3 months agoInline G mix function addition steps to eliminate a function call.
Chris Duncan [Tue, 7 Jan 2025 14:49:32 +0000 (06:49 -0800)]
Inline G mix function addition steps to eliminate a function call.

3 months agoLog some more benchmarks. Switch back to PowGl for blocks, with the plan to later...
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.

3 months agoGet rid of extraneous logging in PowGl.
Chris Duncan [Tue, 7 Jan 2025 13:42:30 +0000 (05:42 -0800)]
Get rid of extraneous logging in PowGl.

3 months agoRename and export PowGl for systems that don't support WebGPU. Update some other...
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.

3 months agoAvoid loading nano-webgl-pow entirely. Upload bundle for platform testing.
Chris Duncan [Tue, 7 Jan 2025 04:46:33 +0000 (20:46 -0800)]
Avoid loading nano-webgl-pow entirely. Upload bundle for platform testing.

3 months agoRemove final unused v array pointer.
Chris Duncan [Tue, 7 Jan 2025 02:33:15 +0000 (18:33 -0800)]
Remove final unused v array pointer.

3 months agoReplace v[d] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 02:31:04 +0000 (18:31 -0800)]
Replace v[d] indexes with pointers.

3 months agoReplace v[c] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 02:26:32 +0000 (18:26 -0800)]
Replace v[c] indexes with pointers.

3 months agoReplace v[b] indexes with pointers.
Chris Duncan [Tue, 7 Jan 2025 01:57:00 +0000 (17:57 -0800)]
Replace v[b] indexes with pointers.

3 months agoRemove replaced v[a] arguments.
Chris Duncan [Tue, 7 Jan 2025 01:55:04 +0000 (17:55 -0800)]
Remove replaced v[a] arguments.

3 months agoRemove v array now that individual variables have been confirmed.
Chris Duncan [Tue, 7 Jan 2025 01:39:23 +0000 (17:39 -0800)]
Remove v array now that individual variables have been confirmed.

3 months agoTry updating G mix function again; rounds need to be updated next.
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.

3 months agoRevert array pointer dereferencing to troubleshoot invalid nonces.
Chris Duncan [Tue, 7 Jan 2025 01:27:44 +0000 (17:27 -0800)]
Revert array pointer dereferencing to troubleshoot invalid nonces.

3 months agoRevert some pointer implementations due to incorrect nonces now.
Chris Duncan [Tue, 7 Jan 2025 01:21:39 +0000 (17:21 -0800)]
Revert some pointer implementations due to incorrect nonces now.

3 months agoFix variable name.
Chris Duncan [Tue, 7 Jan 2025 00:50:08 +0000 (16:50 -0800)]
Fix variable name.

3 months agoRefactor returned promises.
Chris Duncan [Tue, 7 Jan 2025 00:30:41 +0000 (16:30 -0800)]
Refactor returned promises.

3 months agonotes
Chris Duncan [Mon, 6 Jan 2025 22:42:54 +0000 (14:42 -0800)]
notes

3 months agoFix this later.
Chris Duncan [Mon, 6 Jan 2025 22:41:58 +0000 (14:41 -0800)]
Fix this later.

3 months agoThrow more specific error during search call. Revert workload again since research...
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.

3 months agoUpload bundle for platform testing.
Chris Duncan [Mon, 6 Jan 2025 21:14:31 +0000 (13:14 -0800)]
Upload bundle for platform testing.

3 months agoSet workload dynamically based on hardware.
Chris Duncan [Mon, 6 Jan 2025 21:13:26 +0000 (13:13 -0800)]
Set workload dynamically based on hardware.

3 months agoEliminate redundant find function. Rename #calculate to search in order to both bette...
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.

3 months agoNote long benchmark run.
Chris Duncan [Mon, 6 Jan 2025 20:25:12 +0000 (12:25 -0800)]
Note long benchmark run.

3 months agoSkip nano-webgl-pow test comparison for now.
Chris Duncan [Mon, 6 Jan 2025 19:28:37 +0000 (11:28 -0800)]
Skip nano-webgl-pow test comparison for now.

3 months agoUpload bundle for testing.
Chris Duncan [Mon, 6 Jan 2025 19:27:15 +0000 (11:27 -0800)]
Upload bundle for testing.

3 months agoConvert first of four v accessors to pointer references.
Chris Duncan [Mon, 6 Jan 2025 19:24:30 +0000 (11:24 -0800)]
Convert first of four v accessors to pointer references.

3 months agoBenchmark min and max times, and add another round of testing.
Chris Duncan [Mon, 6 Jan 2025 19:24:02 +0000 (11:24 -0800)]
Benchmark min and max times, and add another round of testing.

3 months agoMove benchmarks notes and add new timings.
Chris Duncan [Mon, 6 Jan 2025 18:59:54 +0000 (10:59 -0800)]
Move benchmarks notes and add new timings.

3 months agoWait a maximum of 8 seconds to load GPU.
Chris Duncan [Mon, 6 Jan 2025 17:37:04 +0000 (09:37 -0800)]
Wait a maximum of 8 seconds to load GPU.

3 months agoRemove outdated documentation comment.
Chris Duncan [Mon, 6 Jan 2025 17:02:13 +0000 (09:02 -0800)]
Remove outdated documentation comment.

3 months agoEliminate m array. Fix nonce construction.
Chris Duncan [Mon, 6 Jan 2025 16:31:20 +0000 (08:31 -0800)]
Eliminate m array. Fix nonce construction.

3 months agoPass literal zeros since these array indexes are never initialized.
Chris Duncan [Mon, 6 Jan 2025 15:28:23 +0000 (07:28 -0800)]
Pass literal zeros since these array indexes are never initialized.

3 months agoYep, it was an issue.
Chris Duncan [Mon, 6 Jan 2025 15:00:38 +0000 (07:00 -0800)]
Yep, it was an issue.

3 months agoDelete unused parameter.
Chris Duncan [Mon, 6 Jan 2025 14:54:46 +0000 (06:54 -0800)]
Delete unused parameter.

3 months agoUpdate G mix rounds 6-11.
Chris Duncan [Mon, 6 Jan 2025 14:53:24 +0000 (06:53 -0800)]
Update G mix rounds 6-11.

3 months agoUpdate G mix round 5 (round 4 was done in previous commit).
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).

3 months agoDocument odd difference between blake C reference implementation and nano-webgl-pow...
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.

3 months agoUpdate G mix round 3.
Chris Duncan [Mon, 6 Jan 2025 13:47:55 +0000 (05:47 -0800)]
Update G mix round 3.

3 months agoUpdate G mix round 2.
Chris Duncan [Mon, 6 Jan 2025 13:45:35 +0000 (05:45 -0800)]
Update G mix round 2.

3 months agoIntermediate update to convert m array lookups to variables. Remaining 10 rounds...
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.