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

Include AVX512 in listed HardwareIntrinsics #2388

Closed
stephentoub opened this issue Aug 1, 2023 · 3 comments · Fixed by #2412
Closed

Include AVX512 in listed HardwareIntrinsics #2388

stephentoub opened this issue Aug 1, 2023 · 3 comments · Fixed by #2412

Comments

@stephentoub
Copy link
Member

.NET 8 includes support for AVX512. HardwareIntrinsics.GetFullInfo should factor that in:
https://github.com/dotnet/BenchmarkDotNet/blob/master/src/BenchmarkDotNet/Portability/Cpu/HardwareIntrinsics.cs#L45-L91

@adamsitnik
Copy link
Member

It should be very easy to implement, we just need someone with the AVX512 hardware to be able to test it.

@nietras
Copy link
Contributor

nietras commented Aug 11, 2023

Related to this I have been observing some weird issues related to benchmarking on AVX512, see https://mastodon.social/@nietras/110871324242154513

This claims Vector512 being run on net7.0 runtime, and fails running IndexOfAny. Command is something like:

dotnet run -c Release -f net8.0 --project src\Sep.Benchmarks\Sep.Benchmarks.csproj -- -m --runtimes net70 net80 

all code can be found in net8.0 branch of Sep: nietras/Sep#23

image

IndexOfAny fails with:
image

@nietras
Copy link
Contributor

nietras commented Aug 11, 2023

Ah I think I get it some of this, this is due to how I set this up perhaps, I use Params for parametizing the parsers to run, this list is then defined for "-f net8.0" then BDN runs each params for each runtime, but what and how it then uses the params for the Vector512 path on net7.0 runtime I do not know. I always struggle with BDN here since parametizing things at runtime is ... not easy.

image

I do not know how IndexOfAny then fails either but presumably this refers to "net8.0 version" of that code on net7.0 runtime then...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants