Skip to content
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

[release/7.0-rc1] Vectorize {Last}IndexOf{Any}{Except} without code duplication #74086

Merged
merged 1 commit into from
Aug 17, 2022

Conversation

adamsitnik
Copy link
Member

Backport of #73768 to release/7.0-rc1

I'm backporting this as a special case (I missed the cutoff by hours), as discussed with @stephentoub, who discussed it with @danmoseley.

This PR gives us:

  • great validation of the new Vector128 and Vector256 APIs.
  • vectorization of all Span.{Last}IndexOf{Any}{Except} methods which translates to impressive performance improvements (the larger the input and more work needed, the better).

The performance has been verified on arm64 Windows and Linux, x64 Intel and AMD. Full results can be found here

@ghost
Copy link

ghost commented Aug 17, 2022

Tagging subscribers to this area: @dotnet/area-system-memory
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #73768 to release/7.0-rc1

I'm backporting this as a special case (I missed the cutoff by hours), as discussed with @stephentoub, who discussed it with @danmoseley.

This PR gives us:

  • great validation of the new Vector128 and Vector256 APIs.
  • vectorization of all Span.{Last}IndexOf{Any}{Except} methods which translates to impressive performance improvements (the larger the input and more work needed, the better).

The performance has been verified on arm64 Windows and Linux, x64 Intel and AMD. Full results can be found here

Author: adamsitnik
Assignees: -
Labels:

area-System.Memory, tenet-performance

Milestone: 7.0.0

@ghost ghost assigned adamsitnik Aug 17, 2022
@danmoseley
Copy link
Member

I believe this arguably falls under "1. Broken or significantly incomplete 7.0 scenario" as vectorization of API is a significant focus for us this release, and this is part of work @adamsitnik is doing to ensure our approaches align with best practices guidance he is drafting.

So I'm comfortable taking this this week, but not after this week.

@carlossanlop
Copy link
Member

Approved and signed-off.
CI passed.
Ready to merge. :shipit:

@carlossanlop carlossanlop merged commit cad2af2 into dotnet:release/7.0-rc1 Aug 17, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Sep 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants