-
Notifications
You must be signed in to change notification settings - Fork 15
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
Building 2.0.1 with AVX2 fails #277
Comments
@smuzaffar IIRC the AVX2 should be enabled with make ... AVX2=1 Does that work? (it essentially adds |
passing |
@smuzaffar What version of the mkFit code are you using? A couple of fixes to AVX2 went into PR #262, which was merged on 3/4/20. One of these fixes was to add -mfma when AVX2=1 is defined during make; this is what makes me suspect that you have an older version. But another fix that went into PR #262 took care of a problem with one of the avx2 intrinsics. |
the issue title and description says "2.0.1", IIUC, this is as of #241 |
Thanks @slava77. @smuzaffar, I wonder if this issue is resolved by substituting MatriplexCommon.h from HEAD of devel (which has the necessary changes compared to commit d9dfbda), and adding -mfma to the AVX2 options in Makefile.config? |
should I try buiilding the head of |
Adding -mfma fixes the error you cited, but then it still fails with
which is fixed by the change to Matriplex/MatriplexCommon.h in #262, so basically you need #262, or as Steve said -mfma + Matriplex/MatriplexCommon.h from the HEAD of devel. We should make a new release sometime soon. |
OK, head of devel branch allowed me to build with avx2, avx, avx512 . |
This is the curse of "standard" AVX2. It is a very "minimal" instruction set. I strongly advice to only use specific architectures namely note that nehalem, haswell works for amd as well. |
it sounds like it's important to allow overriding the flags defined in mkFit Makefile with an environment variable to avoid patching trackreco/mkFit for any possible architecture build. |
@slava77 what do you think we need that isn't provided by |
I'd not ask for more. IIUC, what remains for the current release used in CMSSW is a change in the code (https://github.com/trackreco/mkFit/pull/262/files#diff-ff197123457dabd037284f15a683d9b9L39-L48) because enabling of some of the flags would not compile . |
@dan131riley @slava77 To fix Shahzad's issue in a manner consistent with PR #262, these two pieces should be sufficient: (1) Ultimately, we may want to follow Vincenzo's advice and use |
It would be desirable to add a third item to the proposed patch, namely (3) in Makefile.config, change |
So, #280 is supposed to resolve the issue from the mkFit side. The integration for CMSSW is in cms-sw/cmsdist#6312 |
Hi,
I am trying to build mkFit 2.0.1 using GCC 8.4.0 on CentOS7 with avx2 flag but it fails to compile [a]. Is AVX2 not supported?
Thanks, --Shahzad
[a]
The text was updated successfully, but these errors were encountered: