Earlier quoted context omitted.
I happen to know of several companies doing physics problems that scale poorly across cores that spend far north of that, usually building out small clusters. Then you run 100s of independent simulations since each individual one doesn't really scale.
What are the physics problems?
AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
111–120 of 165 posts
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#112Earlier quoted context omitted.
I hear a lot about AVX-512 being really good. Is there any software that's commonly used that has a measurable performance boost with it? Or is it more specialised stuff?
From what I've read on AVX-512, the big disadvantage is that the AVX-512 instructions are very CPU intensive so the max clock speeds is reduced if you heavily use AVX-512 instructions. Another disadvantage is that you have to recompile your code to use AVX512 but it seems general enough that compilers will use the instructions (to an extent) without specialized code [1]. [1] https://www.phoronix.com/scan.php?page=new…
What is especially deceiving is profiling a function in a loop for more than say 50ms, when the normal function execution takes say 0.5ms. Long running functions get the most gain, while short running functions cause the most pain.
That is because downclocking AVX512 lasts 2ms (with a 0.5ms setup). Certain instruction mixes will cause a general slowdown (10% degradation measured by CloudFlare under actual usage) even though the test profiling might predicts a performance gain. Single AVX512 instructions when the CPU is running at full speed have a counterintuitive perverse performance penalty - apparently running 4x slower than when the CPU changes to the slower L1 or L2 clocks.
Sustained AVX512 usage has predictable performance.
“ Intel made more aggressive use of AVX-512 instructions in earlier versions of the icc compiler, but has since removed most use unless the user asks for it with a special command line option.” is a strong indication that you need to be very careful about where you use the instructions.
Running an encoder for 1 second - likely candidate. Occasional 1ms functions or single AVX512 instructions on a web server - likely penalty.
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#113Earlier quoted context omitted.
I think most server operators look at overall performance. Once you start buying hardware specifically for one purpose you're cornering yourself. Besides, who spends $15,000 on a mid-high end server to run single threaded applications anyway?
I happen to know of several companies doing physics problems that scale poorly across cores that spend far north of that, usually building out small clusters. Then you run 100s of independent simulations since each individual one doesn't really scale.
a) Single instance of application doesn't scale over multiple cores, and
b) Multiple instances of application scales well over multiple independent servers
Can you explain why they are unable to efficiently run multiple instances of the application on the same CPU (with multiple cores)?
The only thing I could think of would be running up against IO/Memory bandwidth limits.
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#114Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#115Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#116Earlier quoted context omitted.
Is it anything like the way their compiler detected SSEn in a way that guaranteed it wouldn't use those instructions on AMD processors even if they supported them?
Yes but it wasn't a (if not amd). It was a series of checks based on specific families of Intel cpus, such as haswell, sandy bridge, etc. So it was never actually querying whether the cpu supported instruction x, it was asking what family it belonged to and then applying static rules based on that. Maybe nuance, but it also has the potential to hurt their processors if not kept up on so maybe less malice and more con…
By the way, it's interesting to note that Intel has a disclaimer on every MKL documentation page about this; my speculation: this was required by terms of a settlement.
From the above link:
>The Intel CPU dispatcher does not only check the vendor ID string and the instruction sets supported. It also checks for specific processor models. In fact, it will fail to recognize future Intel processors with a family number different from 6. When I mentioned this to the Intel engineers they replied:
> > You mentioned we will not support future Intel processors with non-'6' family designations without a compiler update. Yes, that is correct and intentional. Our compiler produces code which we have high confidence will continue to run in the future. This has the effect of not assuming anything about future Intel or AMD or other processors. You have noted we could be more aggressive. We believe that would not be wise for our customers, who want a level of security that their code (built with our compiler) will continue to run far into the future. Your suggested methods, while they may sound reasonable, are not conservative enough for our highly optimizing compiler. Our experience steers us to issue code conservatively, and update the compiler when we have had a chance to verify functionality with new Intel and new AMD processors. That means there is a lag sometime in our production release support for new processors.
> In other words, they claim that they are optimizing for specific processor models rather than for specific instruction sets. If true, this gives Intel an argument for not supporting AMD processors properly. But it also means that all software developers who use an Intel compiler have to recompile their code and distribute new versions to their customers every time a new Intel processor appears on the market. Now, this was three years ago. What happens if I try to run a program compiled with an old version of Intel's compiler on the newest Intel processors? You guessed it: It still runs the optimal code path. But the reason is more difficult to guess: Intel have manipulated the CPUID family numbers on new processors in such a way that they appear as known models to older Intel software. I have described the technical details elsewhere.
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#117I'm ignorant in stock trading, I admit. But I dont understand why AMD stock isn't blowing up. It's done a recovery after a market wide dip, but hasn't all this Intel beating news raised the hype? So many other tech companies are so severly overvalued and hyped daily. Why is AMD a steady 28-32?
I've read this elsewhere on HN, basically it boils down to having great tech doesn't mean everyone drops all their existing Intel tooling or Intel-optimized source code. If you care a lot about performance, then you'll care about those things. For everyone else, they just want a reasonably priced processor, and most PC manufacturers have large contracts to get those CPUs at a good enough price from Intel to also not want to switch all their motherboards and factory setups and driver in order.
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#118AMD is in a really good position right now. Intel still has the lead in low idle power which is good in laptops. Ryzen lets different cores have different max frequencies so if your code is single threaded and your operating system isn't the newest that could be a reason to go Intel. Likewise if its single threaded and can take advantage of AVX-512 or the Intel Math Kernel Library. But otherwise?
The main selling point for Intel isn't speed anymore. Intel still has superior performance counters and debugging features. Mozilla's rr (Record and Replay framework) only works on Intel for example, and Intel vTune is a very good tool. AVX512 is also an advantage, as you've noted. There are other instruction set advantages: I think Intel has faster division / modulus operator, and also has single-clock pext / pdep (…
Intel is infamous for severely downclocking the processor for these and other AVX/SSE family instructions, to a point where sometimes using them makes the program slower than it would be otherwise, especially if you're constantly provoking frequency switches between them and regular instructions.
AMD might not have implemented AVX512 specifically yet (there's nothing legally keeping them from doing so however, they have patent sharing agreements with Intel regarding the entire x86/x64 ISA and extensions), but what they currently DO have is all common SIMD extensions implemented (up to SSE4 and AVX2 if I'm not mistaken) without incurring any frequency penalties on clock speeds for using them.
I can live without AVX512 for now, even though I'd be happier to have it. But I would really rather not have it if it came out in the same crap implementation that Intel has.
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#119Earlier quoted context omitted.
I happen to know of several companies doing physics problems that scale poorly across cores that spend far north of that, usually building out small clusters. Then you run 100s of independent simulations since each individual one doesn't really scale.
You seem to be say that both a) Single instance of application doesn't scale over multiple cores, and b) Multiple instances of application scales well over multiple independent servers Can you explain why they are unable to efficiently run multiple instances of the application on the same CPU (with multiple cores)? The only thing I could think of would be running up against IO/Memory bandwidth limits.
Edit: I was really just responding to "who spends $15,000 on a mid-high end server to run single threaded applications anyway?". I would absolutely consider this a "single threaded application".
Re: AMD Ryzen Threadripper 3000 32-core CPU is more bad news for Intel
#120I'm ignorant in stock trading, I admit. But I dont understand why AMD stock isn't blowing up. It's done a recovery after a market wide dip, but hasn't all this Intel beating news raised the hype? So many other tech companies are so severly overvalued and hyped daily. Why is AMD a steady 28-32?