4 ms·
They support pretty much everything up to AVX2, though that is more of a compatibility implementation. Though its dubious Intel MPI and other software will use
by revelation 9y ago
They support pretty much everything up to AVX2, though that is more of a compatibility implementation.
Though its dubious Intel MPI and other software will use the correct accelerated path even if an AMD processor supports it.
- madengr 9y agoFrom that MPI link: "Optimization Notice: Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804"
- kartD 9y agohttp://www.agner.org/optimize/blog/read.php?i=49#49 http://www.agner.org/optimize/blog/read.php?i=49#49 TLDR; Intel purposely chooses slower code gen paths for AMD processors in ICC.
- trendia 9y ago> The system includes a function that detects which type of CPU it is running on and chooses the optimal code path for that CPU. This is called a CPU dispatcher. However, the Intel CPU dispatcher does not only check which instruction set is supported by the CPU, it also checks the vendor ID string. If the vendor string says "GenuineIntel" then it uses the optimal code path. If the CPU is not from Intel then, in most cases, it will run the slowest possible version of the code, even if the CPU is fully compatible with a better version. This is surely legal but distasteful. They are attempting to manipulate people's perception of competitors' products do that they do not switch, even when the potential performance would be the same if a fair analysis were applied. I have been an Intel guy my whole life but I can only hope that their near monopoly is destroyed by AMD.
- wfunction 9y agoDo you know if it's easy to patch the binaries so that this effect is nullified?
- VHRanger 9y agoFrom my experience, Clang 5 on O2 will beat ICC with its libraries on its most aggressive optimization setting in real world large applications.
- wfunction 9y agoHas this recently changed (e.g. was it different from v4)? Or was it always the trend?
- VHRanger 9y agoFor numerically heavy software it's fairly recent. That said I cross compile a 15k LoC numerically heavy app with ICC 2017 and Clang 5 (also MSVC which is not really in the running) and clang handily beats ICC. Most of the win from clang seems to come from small vector and small string optimizations along with better inlining and whole program optimization. ICC has better vectorization, but it's a smaller part of the performance than it might seem. Moreover, if a core loop is banking on vectorization, you should probably code it in intrinsics at that point to make sure it's always correctly optimized
- wfunction 9y agoOh cool, okay thanks!
- CyberDildonics 9y agoSource?
- VHRanger 9y agoMy work
- CyberDildonics 9y agoLet's see a link then.