-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
(#12705) OpenBlas: Add arch target option #13478
Conversation
b34dc8b
to
6513bb2
Compare
This comment has been minimized.
This comment has been minimized.
6513bb2
to
fc9f86b
Compare
Failure in build 4 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
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.
I'm not convinced about this change. It is not a configuration to be applied as -march or -mtune to the compiler? It looks more a setting than an option. In case it's parsed directly as a compiler flags, it can be configured directly by global.conf with tools.build
Agreed with @uilianries Conan needs something like this: https://spack.readthedocs.io/en/latest/basic_usage.html#support-for-specific-microarchitectures Let's implement it in this PR. I think you can do this in a weekend or two. |
@aborzunov Microarch is a complex feature listed here: conan-io/conan#847 Please, feel free to comment there your thought. So far, the best approach is customizing your settings.yml: https://docs.conan.io/en/latest/extending/custom_settings.html#adding-new-sub-settings |
As OpenBlas documentation says, they have special option for cmake (and make) for case, when compiling for specific architecture is required. If this option is not passed to cmake, OpenBlas build scripts will ignore anything and sets compile flags as it wish. Thus, if our build server has AVX512 it will deploy broken code to clients (e.g. with haswell). I don't quite understand why should we substitute openblas author's cmake option with I can do something like this in if self.settings.get_safe("micro_arch_target") != "None":
cmake.definitions["TARGET"] = self.settings. micro_arch_target And leave a comprehensive in-code comment about what is this and that user should modify local |
@aborzunov Adding a custom setting in the recipe is not an option, as it's not documented. However, you could use |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This pull request has been automatically closed because it has not had recent activity. Thank you for your contributions. |
Maybe it’s worth considering creating an MR on Conan? |
Specify library name and version: openblas/*
Now we can specify target architecture with recipe options and not rely on hardcoded in openblas cmake auto detection utilities.
closes #12705