13
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 30 Dec 2024
13 points (78.3% liked)
Linux
15463 readers
397 users here now
A community for everything relating to the GNU/Linux operating system (except the memes!)
Also, check out:
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
founded 3 years ago
MODERATORS
Yeah it's easier to compile software with support for the latest vector extensions etc. if you do it from source. It is also possible to do runtime detection and switch between implementations that way, but it requires more work.
Tbh I don't think it would make much difference in practice. If you are ok with supporting only recentish CPUs you can use one of these options:
-march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2
-march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3
-march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
-march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
v2 is definitely fine and v3 is probably acceptable by now.
In short I don't think
-marchis a compelling argument for avoiding binary distribution. If it really makes a big difference either distribute multiple versions of your software using the flags above, or do runtime detection.No.
why