9 ms·
> optimized Intel compiler/libraries now And that's just cheating anyway. Intel's libraries refuse to use some instructions on AMD's CPU that the CPU supports,
by Someone1234 7y ago
> optimized Intel compiler/libraries now
And that's just cheating anyway. Intel's libraries refuse to use some instructions on AMD's CPU that the CPU supports, and instead downgrade to slower legacy versions. Cite[0].
[0] https://www.agner.org/optimize/blog/read.php?i=49 https://www.agner.org/optimize/blog/read.php?i=49
- bitL 7y agoI've tried to use MKL_DEBUG_CPU_TYPE=5 trick on a Threadripper but it had no effect on scikit-learn nor matrix factorization inside MKL.
- sebazzz 7y agoThis almost calls from a microcode patch or kernel driver from AMD to mitigate this, if at all possible.
- ashleyn 7y agoIf all Intel has left over the competition is artificial vendor lock-in, they're in big trouble.
- linuxftw 7y agoCPU for desktops has been commoditized. Intel does a lot in networking, RAM, and storage. Not to mention having almost all of the server space.
- rbanffy 7y agoDesktops is relatively low growth and Intel holds a lot os sway with major integrators. There are about a handful of AMD offers at Dell or Lenovo and dozens of Intel ones.
- HeWhoLurksLate 7y agoAnd I just ordered an HP laptop with a Ryzen APU. Voting with wallets counts, people! If you want to see more AMD laptops, buy them!
- bitL 7y agoYou should have waited for 4000U series... By then you might even have HiDPI screens on AMD laptops...
- NullPrefix 7y agoThere's always something better on the horizon
- bitL 7y ago4000U should make 3000U/H completely obsolete, it's the first mobile Zen 2 APU series.
- tutanchamun 7y agoYeah, especially if battery life is important as it will feature LPDDR4X-4266 support (0.6v instead of 1.2 and low power modes).
- HeWhoLurksLate 7y agoI wanted one now. And yeah, the future is always brighter. My current laptop- an HP Pavilion 2000 has an AMD APU as well- but it's from like a decade ago and it's been showing it's age for quite a while, and I needed something newer. Ryzen 5 3550H, BTW
- justinjlynn 7y agoYou think that's bad? Try getting Intel libraries like Embree to compile on PowerPC/OpenPOWER systems. It seems designed to be almost entirely impossible to port to new architectures... just about every piece of software released by Intel is made like this. SMH
- berkut 7y agoTBB has support for PowerPC and Sparc: Intel accepted patches. It's not that difficult to port Embree to other architectures, at least for the 4-wide stuff: you just need intrinsics wrappers, and a bit of emulation for the instructions PowerPC doesn't support.
- justinjlynn 7y ago> not that difficult afaict, the thing uses multi-templated indirected hardcoded asm inlines instead of intrinsic calls - it is not "that difficult" but it is by no means simple and they've done precisely zero favours to anyone trying. They've really gone out of their way, with Embree, to make it crazy hard, if not impossible, to fully activate the built-in SSE/MMX to AVX compatibility shim headers GCC ships with too, where they even can be. sigh
- gowld 7y agoIt's only cheating if there exists an alternate compiler that works better on AMD. It may be not-nice for Intel to use this form of "DRM" to lock their high-performance compiler to Intel chips, but they don't owe AMD users a high-performance compiler. Now, if vendors are shipping pre-compiled software that has the enabled-for-Intel-only fast-paths and don't ofter AMD-optimized versions, those vendors are misbehaving (intentionally or not).
- wjnc 7y agoI agree. It's funny that the lack of attention of AMD to software / drivers (say Blas / MKL, CUDA) is holding the adoption of their silicon back in certain markets even after they've surpassed Intel in performance.
- sliken 7y agoAMD has a compiler (c, c++, fortran) and various math libs: libm for basics, blis/libflame for blas.
- fluffything 7y agoThat's not cheating. There are two problems here. The first problem is that AMD does not provide versions of those libraries tuned for AMD hardware. The investment of AMD into software for their hardware is close to zero, and without software, hardware is irrelevant. AMD has this problem when competing against nvidia in the GPU space, and against intel in the CPU space. The second problem is that buyers of AMD products demand that Intel would release their software optimized for AMD products as well, which is just nonsensical. First, Intel is not required to do this and have no reason to do so - if this software doesn't work for your hardware, either buy Intel, or use something else. Second, these people don't expect AMD to provide these libraries, and aren't willing to provide them themselves, so... combined with AMD culture of not investing in software, nothing will happen. That link is 10 years old, but these issues are at least 10 years older. That is, AMD has had 20 years to fix this, and nothing has happened. I mean, this might sound like captain obvious, but Intel and Nvidia have super good profilers for their hardware (VTune and Nsight). AMD provides uProf, which sucks, so if that is what their engineers are using for their libraries, it isn't a surprise that they don't perform good.
- bitL 7y agoThey commit patches to OpenBLAS which is still 2-3x slower on Zen 2 than MKL on Intel hardware. Intel has better software engineers for high-performance math it seems.
- fluffything 7y ago> Intel has better software engineers for high-performance math it seems. Intel has software engineers for pretty much every application. AMD has very few software engineers.
- bitL 7y agoYeah, that's quite unfortunate, however as AMD seems to be able to earn some $ in the following ~2 years they might go on SWE hiring spree...
- sliken 7y agoTo fix MKL for AMD Rome/Zen2 just do "export MKL_DEBUG_CPU_TYPE=5" This helps quite a bit with Matlab (which uses MKL) as well. For Blas/Lapack like libraries look for Blis and libFLAME. Gcc-9.2.0 isn't bad, but if you want Zen2/Rome/Ryzen 3xxx optimizations I'd recommend AMD's AOCC, which is a tuned version of LLVM (including c, c++, and fortran). If you need FFTs look at amd-fftw. Basic low level math (pow, log, exp, exp2 and friends) library look at the "AMD Math library (libM).