Hi Shayan, Shayan Doust, on 2020-06-29 20:24:33 +0100: > Ahhh. My knowledge of some CPU instruction sets, especially that of bit > manipulation, is very limited, so I didn't know -mpopcnt had that much > of an implication over the test. I can confirm that removing this does > in fact pass the tests. Glad it helped. :) > I assume the best course of action is to keep this flag removed because > not all end user machines would support an instruction like this, > however I have seen some packages such as mmseqs2[1] test for various > instruction sets such as that of the SSE family, so should something > like popcnt be conditionally set if the build supports such instruction > set or would a single instruction set such as popcnt not be significant > enough for all this trouble? > [1] https://salsa.debian.org/med-team/mmseqs2/-/blob/master/debian/rules Normally yes, we want the greatest common denominator of instructions available on all variants of a same architecture, so the package can run everywhere; otherwise users get illegal instruction errors and get angry. Some programs may have special tuning for dynamically recognizing instructions availability, and branch accordingly to the fastest path (Linux RAID error correction code for instance). In the case of mmseq2, there is a binding to the SIMDe library[2], which eases building a whole set of variants of the same program, each variant being tuned to a particular CPU's vector instructions capabilities. Well at least, that is how I understood it. Other persons such as Michael have spent a lot of time on this, and may explain the principle much better than myself. As far as I can tell, popcnt are bit instructions, so are not covered by SIMDe, so I think for the moment that disabling the option should be good enough. [2] https://github.com/simd-everywhere/simde Kind Regards, -- Étienne Mollier <etienne.mollier@mailoo.org> Fingerprint: 5ab1 4edf 63bb ccff 8b54 2fa9 59da 56fe fff3 882d Help find cures against the Covid-19 ! Give CPU cycles: * Rosetta@home: https://boinc.bakerlab.org/rosetta/ * Folding@home: https://foldingathome.org/
Attachment:
signature.asc
Description: PGP signature