-
Notifications
You must be signed in to change notification settings - Fork 286
Add MonoAOTLLVM to local script #3338
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
Add MonoAOTLLVM to local script #3338
Conversation
|
Tested locally on osx-arm64 and I'm getting. It looks similar to dotnet/runtime#91819. Is it possible that it is a Mono issue? |
I tested the script on Ubuntu 22.04 x64 (WSL) and it looks to run correctly. Edit: Upon more detailed inspection I believe that while the script runs with Ubuntu on x64 it doesn't use LLVM backend but mini. |
I re-tested the script on osx-arm64 with clang-16 and I'm getting the same error. It looks like it built without enabled LLVM, report from |
|
After the last change which added However, I'm concerned about the Ubuntu scenario where and based on some testing I believe the AOT is running with mini not llvm backend. Any thoughts on what might be missing? Could it be related to recent issues with LLVM on Ubuntu? I'm unsure whether this is a x64 vs arm64 or Linux vs Mac issue with How do we test that the machines running in perf lab are doing AOT-llvm and not using mini? Could we verify by using |
|
Not related to this PR but I found that when running The error is I think that the artifacts get place in |
|
It would be nice to include a brief instruction on how to use this script. I see that common usage was mentioned in the comment at the beginning of the script. It would be very helpful to also list all the possible switches and what they do. |
|
When using the script, I noticed in the log, it said This seems to be a overkill for local runs. |
Yes, I think it is a good idea. Let's fix the naming and add Please post your findings when you get a chance. |
If it is based on the mono-aot-cross executable, should we be able to pull down the built artifact and test on a like system, or is there system specific things that we would need to check for on the specific machines? If it can be tested locally, I can pull down the build mono-aot-cross to wsl and get the output. |
Yes, I think we can retrieve it from artifacts and use it on linux-x64. |
… to use should be the ones present in the Versions.props, otherwise built artifacts end up with unexpected paths causing failing builds. As such, also removed the framework from the artifact path for this reason. Removed the cross arguments as they should not be necessary for local builds.
…m-engine-path and removed the TODO setup required for the mono-libclang-path since it is not strictly required.
b165fea to
16c57ac
Compare
I understand that this needs to be done to ensure the accuracy of the results. However, this prevented me from doing other work, such as building other repos. One possible solution to this issue could be running the microbenchmarks inside another vm or a codespace or a docker container or some other controlled environment for use cases of validating a certain commit hash for causing performance changes. |
|
It would be nice for this script to support running microbenchmarks from a local |
Do you mean in a different local dotnet/performance repo? Since the current setup uses the scripts in the dotnet/performance repo that it is being run from, local changes should be testable/reflected properly when made to the same repo as the script. Please let me know if this has not been your experience or if you mean some other setup. |
You are right. I confused myself. Please ignore this 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.
LGTM!
As mentioned by @fanyang-mono, for future work I would consider removing the kill all dotnet processes.
Additionally, when running with admin privileges, it would be nice that only the microbenchmarks are run with higher privileges and building of runtime is done with standard user privileges. This matters when working with local repo as you usually must then clean everything so that you can rebuild in normal user mode.
kotlarmilos
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.
Thank you!
|
I've opened an issue (#3385) to captured most of the suggestion, which are not included in this PR. Feel free to add more, if I missed anything. |
Adds MonoAOTLLVM scenario support to the local testing script. Because the MonoAOTLLVM toolchain is only setup to run one BDN test set per invocation, the tool runs multiple which then can be compared using the ResultsComparer tool.