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

port SpanHelpers.IndexOfAny(ref byte, byte, byte, int) to Vector128/256 #73384

Merged
merged 1 commit into from
Aug 5, 2022

Conversation

adamsitnik
Copy link
Member

@adamsitnik adamsitnik commented Aug 4, 2022

x64

On par.

BenchmarkDotNet=v0.13.1.1828-nightly, OS=Windows 10 (10.0.18363.2212/1909/November2019Update/19H2)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
.NET SDK=7.0.100-rc.1.22403.8
  [Host]     : .NET 7.0.0 (7.0.22.40210), X64 RyuJIT AVX2

LaunchCount=9
Method Toolchain Size Mean Ratio
IndexOfAnyTwoValues \PR\corerun.exe 512 17.51 ns 1.00
IndexOfAnyTwoValues \baseline\corerun.exe 512 17.43 ns 1.00

arm64

BDN is reporting less than a nanosecond difference, which maps to 4%. On arm64 I don't have the tool that would allow me to verify whether it's caused by an alginment or codegen change.

BenchmarkDotNet=v0.13.1.1828-nightly, OS=ubuntu 20.04
Unknown processor
.NET SDK=7.0.100-rc.1.22403.8
  [Host]     : .NET 7.0.0 (7.0.22.40210), Arm64 RyuJIT AdvSIMD
  
LaunchCount=9
Method Toolchain Size Mean Ratio
IndexOfAnyTwoValues /PR/corerun 512 37.37 ns 1.04
IndexOfAnyTwoValues /main/corerun 512 36.12 ns 1.00

contributes to #64451

@ghost
Copy link

ghost commented Aug 4, 2022

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

Issue Details

x64

On par.

BenchmarkDotNet=v0.13.1.1828-nightly, OS=Windows 10 (10.0.18363.2212/1909/November2019Update/19H2)
Intel Xeon CPU E5-1650 v4 3.60GHz, 1 CPU, 12 logical and 6 physical cores
.NET SDK=7.0.100-rc.1.22403.8
  [Host]     : .NET 7.0.0 (7.0.22.40210), X64 RyuJIT AVX2

LaunchCount=9
Method Toolchain Size Mean Ratio
IndexOfAnyTwoValues \PR\corerun.exe 512 17.51 ns 1.00
IndexOfAnyTwoValues \baseline\corerun.exe 512 17.43 ns 1.00

arm64

BDN is reporting less than a nanosecond difference, which maps to 4%. On arm64 I don't have the tool that would allow me to verify whether it's caused by an alginment or codegen change.

BenchmarkDotNet=v0.13.1.1828-nightly, OS=ubuntu 20.04
Unknown processor
.NET SDK=7.0.100-rc.1.22403.8
  [Host]     : .NET 7.0.0 (7.0.22.40210), Arm64 RyuJIT AdvSIMD
  
LaunchCount=9
Method Toolchain Size Mean Ratio
IndexOfAnyTwoValues /PR/corerun 512 37.37 ns 1.04
IndexOfAnyTwoValues /main/corerun 512 36.12 ns 1.00
Author: adamsitnik
Assignees: -
Labels:

area-System.Memory

Milestone: -

@lambdageek
Copy link
Member

WASM AOT compilation failed in this PR and is now failing on main

@jkotas
Copy link
Member

jkotas commented Aug 5, 2022

Submitting revert in #73476

jkotas added a commit that referenced this pull request Aug 5, 2022
@jkotas
Copy link
Member

jkotas commented Aug 5, 2022

@adamsitnik Please make sure to add links to the known issues tracking the failures when merging with red CI next time.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants