-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Add support for composite r2r runs #2967
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
Conversation
f203c40 to
2fd5f7f
Compare
timcassell
left a comment
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.
There has been user interest in a R2R toolchain (#2514). I think it would be good to make it work for general use, not just custom runtime. Could also make "Composite" an optional setting.
src/BenchmarkDotNet.Diagnostics.dotTrace/.DotTraceDiagnoser.cs.swp
Outdated
Show resolved
Hide resolved
2fd5f7f to
3f4c8e8
Compare
@timcassell I didn't really make it clear, but it actually works already with a normal sdk. If there is no passed custom runtime pack and crossgen2 pack then the On a separate note, after rebasing to latest main, I tried using the locally built bdn with a sample project. The autogenerated project failed to build with the following error:
This error is triggered by |
|
That sounds like the same issue as #2931 (comment). Thanks for finding the problematic commit. I'll take a look when I get some time. |
|
@timcassell Thanks!! #2935 did indeed fix the issue. Regarding the simple R2R support, does it sound good to rename the toolchain/moniker to ex. cc @adamsitnik |
|
I do think it should be renamed, and add I think we don't actually need a composite option in the toolchain, just always have it enabled. Users can use |
|
Also please add integration tests. |
|
Also I think you should add |
This is achieved by using already existing properties in the sdk: PublishReadyToRun and PublishReadyToRunComposite. The compositer2r toolchain adds these properties to a standar project template. In order to test with custom built runtime, the toolchain reuses the already existing `customruntimepack` and `aotcompilerpath` bdn args. Example command used locally from microbenchmarks project: dotnet run -c Release -f net10.0 --runtimes compositer2r10_0 --filter "System.Tests.Perf_Int32.TryFormat" --customruntimepack /home/vbrezae/runtime3/artifacts/bin/microsoft.netcore.app.runtime.linux-arm64/Release/ --aotcompilerpath /home/vbrezae/runtime3/artifacts/packages/Release/Shipping/crossgen2pack/
3f4c8e8 to
7dca0de
Compare
35593a6 to
072dcd5
Compare
This only checks that using r2r runtime builds and runs. We are not checking at runtime that we are actually running r2r code.
072dcd5 to
06f74af
Compare
|
@timcassell I believe I've addressed all your comments. The newly added test is passing now, it is only testing the build step, there is no check at runtime. We could probably check the existence of some r2r binaries but I don't think it is really worth it and it would just make it susceptible to false positive failures in the future. |
ba8dbec to
da825a5
Compare
89c8420 to
6a9aaa5
Compare
timcassell
left a comment
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.
Thanks @BrzVlad
This is achieved by using already existing properties in the sdk: PublishReadyToRun and PublishReadyToRunComposite. The compositer2r toolchain adds these properties to a standard project template. In order to test with custom built runtime, the toolchain reuses the already existing
customruntimepackandaotcompilerpathbdn args.Example command used locally from microbenchmarks project:
dotnet run -c Release -f net10.0 --runtimes r2r10_0 --filter "System.Tests.Perf_Int32.TryFormat" --customruntimepack /home/vbrezae/runtime3/artifacts/bin/microsoft.netcore.app.runtime.linux-arm64/Release/ --aotcompilerpath /home/vbrezae/runtime3/artifacts/packages/Release/Shipping/crossgen2pack/