4 ms·
That's deliberate though, when you distribute software you choose the lowest common denominator in general, and that's SSE2 for 64 bit machines.
by physicsguy 6y ago
That's deliberate though, when you distribute software you choose the lowest common denominator in general, and that's SSE2 for 64 bit machines.
- johncolanduoni 6y agoMany linear algebra libraries will handle this at runtime for you (OpenBLAS & MKL do this for example). You generally only need to use specialized builds of these if you don't want to have to ship extra code paths you won't use.
- jsight 6y agoSee, this is why Gentoo is the right way to manage an OS. /s
- gnufx 6y agoThe SIMD makes little difference to the bulk of the system, but you want dynamic dispatch where it does, at least on a typical HPC system, which isn't heterogeneous five years down the line, and in things like libc generally.
- bobbylarrybobby 6y agoWhen you install Python's numpy, I'm pretty sure it chooses a pre-built package based on your hardware, and if it doesn't have one I think it's pretty easy to get it to build the best one from scratch.
- physicsguy 6y agoIt generally installs MKL if you install a wheel (i.e. 'pip install numpy') these days, which dynamic dispatches based on the processor. It's been criticised a bit though because MKL doesn't perform as well on AMD hardware without setting some environment variables in the older versions, although it looks like they've added kernels that target AMD hardware recently.