Uh oh!
There was an error while loading. Please reload this page.
[mono] Re-enable HAS_CUSTOM_BLOCKS for non-amd64 Mono - #107358
[mono] Re-enable HAS_CUSTOM_BLOCKS for non-amd64 Mono#107358matouskozak wants to merge 1 commit into
Conversation
Tagging subscribers to this area: @steveisok, @lambdageek |
This comment was marked as resolved.
This comment was marked as resolved.
EgorBo
commented
Sep 4, 2024
oops, class must be public @EgorBot -mono -arm64 usingBenchmarkDotNet.Attributes;publicclassBencha{byte[]data=newbyte[512];[Benchmark]publicvoidClear()=>data.AsSpan().Clear();} |
EgorBo
commented
Sep 4, 2024
Seems like it regresses Jit-arm64 EgorBot/runtime-utils#65 (comment) |
EgorBo
commented
Sep 4, 2024
Let me try the interp: @EgorBot -mono -arm64 -x64 --envvars MONO_ENV_OPTIONS:--interpreter usingBenchmarkDotNet.Attributes;publicclassBencha{byte[]data=newbyte[512];[Benchmark]publicvoidClear()=>data.AsSpan().Clear();} |
matouskozak
commented
Sep 4, 2024
Indeed, Thank you for running the measurements. I'm trying to get some local measurements as well and I'll investigate more. I added |
I suspect that indeed can help interpeter (because 1 block copy is faster than 8 scalars) and maybe LLVM is not able to merge 8 scalars into SIMD (SLP) due to some lack of aliasing/alignment info, at least on x64 |
I've checked locally and this fixes However, I don't like that it regressed MonoJIT-arm64, e.g.:
I will have to investigate more where the block optimizations are made. |
xtqqczze
commented
Sep 30, 2024
Superseded by #107558. |
matouskozak
commented
Sep 30, 2024
Yes, sorry I forgot to close this PR. We decided to do full revert based on the investigation in #107308 (comment). We will address the regression in #106822. |
We've seen a bunch of regressions on WASM, AOT-arm64 and Interp-arm64 microbenchmark after #106764. Rather than reverting the PR and loosing the gains on x64 MonoJIT, we can try limiting the change to x64.
Regressions: