-
-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Intrinsics and some performance optimisations #58
Conversation
- Added Intrinsics fast path - Added Thread Static cache for GetMacDataRfc8439 - Added ability for benchmarks to run in .NET48 (for a pre/post intrinsics comparison)
Commit 28d47c9 added |
Hello macaba, Glad to hear from you again. 😀 Allow me some time to check it in the different platforms since the CI didn't kick on Azure DevOps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@macaba noticed why the CI failed, could you kindly address this little issue?
<TargetFrameworks>netstandard1.6;netstandard2.0;netstandard2.1;netcoreapp3.1;netcoreapp5.0</TargetFrameworks> | ||
<TargetFrameworks Condition="'$(OS)' != 'Unix'">netstandard1.6;netstandard2.0;netstandard2.1;netcoreapp3.1;netcoreapp5.0;net45;net48</TargetFrameworks> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you remove .NET 5 since it's still in preview, so the CI doesn't complain?
It will surely be added once .NET 5 is released by the end of the year.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just pushed an update to support .NET 5 now that is RTM.
@macaba I did a quick test under Windows and the Wycheproof test vectors from ChaCha20Poly1305 and XChaCha20Poly1305 are failing. Could you check those out, please? Apparently, the changes on |
Hello @macaba I wonder if you got any progress on this? I'm planning on releasing the updated version on NuGet tagged as 2.0.0 since in the current state (prior to the PR) we got some breaking changes. Would be nice to have yours included. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in one week if no further activity occurs. |
Hello!
I finally got round to pulling in all your latest updates. Fantastic work on the Span & BitUtils support.
A quick bit of benchmarking.
Before adding my pure intrinsics processing (i.e. using BitUtils which I suspect emits some intrinsics under the hood):
A decent improvement vs. Framework.
After adding intrinsics:
I'm particularly impressed with the memory allocated when using the Span Encrypt method. When I did a memory trace, the
GetMacDataRfc8439
was the only method significantly allocating memory. It would be ideal to come up with some sort of caching or memory context scheme for this.