[Beowulf] AMD and AVX512

Jonathan Engwall engwalljonathanthereal at gmail.com
Mon Jun 21 13:20:00 UTC 2021

I have followed this thinking "square peg, round hole."
You have got it again, Joe. Compilers are your problem.

On Sun, Jun 20, 2021, 10:21 AM Joe Landman <joe.landman at gmail.com> wrote:

> (Note:  not disagreeing at all with Gerald, actually agreeing strongly ...
> also, correct address this time!  Thanks Gerald!)
> On 6/19/21 11:49 AM, Gerald Henriksen wrote:
> On Wed, 16 Jun 2021 13:15:40 -0400, you wrote:
> The answer given, and I'm
> not making this up, is that AMD listens to their users and gives the
> users what they want, and right now they're not hearing any demand for
> AVX512.
> More accurately, there is call for it.  From a very small segment of the
> market.  Ones who buy small quantities of processors (under 100k volume per
> purchase).
> That is, not a significant enough portion of the market to make a huge
> difference to the supplier (Intel).
> And more to the point, AI and HPC joining forces has put the spotlight on
> small matrix multiplies, often with lower precision.  I'm not sure (haven't
> read much on it recently) if AVX512 will be enabling/has enabled support
> for bfloat16/FP16 or similar.  These tend to go to GPUs and other
> accelerators.
> Personally, I call BS on that one. I can't imagine anyone in the HPC
> community saying "we'd like processors that offer only 1/2 the floating
> point performance of Intel processors".
> I suspect that is marketing speak, which roughly translates to not
> that no one has asked for it, but rather requests haven't reached a
> threshold where the requests are viewed as significant enough.
> This, precisely.  AMD may be losing the AVX512 users to Intel.  But that's
> a small/miniscule fraction of the overall users of its products.  The
> demand for this is quite constrained.  Moreover, there are often
> significant performance consequences to using AVX512 (downclocking,
> pipeline stalls, etc.) whereby the cost of enabling it and using it, far
> outweighs the benefits of providing it, for the vast, overwhelming portion
> of the market.
> And, as noted above on the accelerator side, this use case (large vectors)
> are better handled by the accelerators.  There is a cost (engineering, code
> design, etc.) to using accelerators as well.  But it won't directly impact
> the CPUs.
> Sure, AMD can offer more cores,
> but with only AVX2, you'd need twice as many cores as Intel processors,
> all other things being equal.
> ... or you run the GPU versions of the code, which are likely getting more
> active developer attention.  AVX512 applies to only a miniscule number of
> codes/problems.  Its really not a panacea.
> More to the point, have you seen how "well" compilers use AVX2/SSE
> registers and do code gen?  Its not pretty in general.  Would you want the
> compilers to purposefully spit out AVX512 code the way the do AVX2/SSE code
> now?  I've found one has to work very hard with intrinsics to get good
> performance out of AVX2, never mind AVX512.
> Put another way, we've been hearing about "smart" compilers for a while,
> and in all honesty, most can barely implement a standard correctly, never
> mind generate reasonably (near) optimal code for the target system.  This
> has been a problem my entire professional life, and while I wish they were
> better, at the end of the day, this is where human intelligence fits into
> the HPC/AI narrative.
> But of course all other things aren't equal.
> AVX512 is a mess.
> Understated, and yes.
> Look at the Wikipedia page(*) and note that AVX512 means different
> things depending on the processor implementing it.
> I made comments previously about which ISA ARM folks were going to write
> to.  That is, different processors, likely implementing different
> instructions, differently ... you won't really have 1 equally good compiler
> for all these features.  You'll have a compiler that implements common
> denominators reasonably well.  Which mitigates the benefits of the
> ISA/architecture.
> Intel has the same problem with AVX512.  I know, I know ... feature flags
> on the CPU (see last line of lscpu output).  And how often have certain
> (ahem) compilers ignored the flags, and used a different mechanism to
> determine CPU feature support, specifically targeting their competitor
> offerings to force (literally) low performance paths for those CPUs?
> So what does the poor software developer target?
> Lowest common denominator.  Make the code work correctly first.  Then make
> it fast.  If fast is platform specific, ask how often with that platform be
> used.
> Or that it can for heat reasons cause CPU frequency reductions,
> meaning real world performance may not match theoritical - thus easier
> to just go with GPU's.
> The result is that most of the world is quite happily (at least for
> now) ignoring AVX512 and going with GPU's as necessary - particularly
> given the convenient libraries that Nvidia offers.
> Yeah ... like it or not, that battle is over (for now).
> [...]
> An argument can be made that for calculations that lend themselves to
> vectorization should be done on GPUs, instead of the main processors but
> the last time I checked, GPU jobs are still memory is limited, and
> moving data in and out of GPU memory can still take time, so I can see
> situations where for large amounts of data using CPUs would be preferred
> over GPUs.
> AMD's latest chips support PCI 4 while Intel is still stuck on PCI 3,
> which may or may not mean a difference.
> It does.  IO and memory bandwidth/latency are very important, and oft
> overlooked aspects of performance.  If you have a choice of doubling IO and
> memory bandwidth at lower latency (usable by everyone) vs adding an AVX512
> unit or two (usable by a small fraction of a percent of all users), which
> would net you, as an architect, the best "bang for the buck"?
> But what despite all of the above and the other replies, it is AMD who
> has been winning the HPC contracts of late, not Intel.
> There's a reason for that.  I will admit I have a devil of a time trying
> to convince people that higher clock frequency for computing matters only
> to a small fraction of operations, especially ones waiting on (slow) RAM
> and (slower) IO.  Make the RAM and IO faster (lower latency, higher
> bandwidth), and the system will be far more performant.
> --
> Joe Landman
> e: joe.landman at gmail.com
> t: @hpcjoe
> w: https://scalability.org
> g: https://github.com/joelandman
> l: https://www.linkedin.com/in/joelandman
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit
> https://beowulf.org/cgi-bin/mailman/listinfo/beowulf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://beowulf.org/pipermail/beowulf/attachments/20210621/2fb7164a/attachment.htm>

More information about the Beowulf mailing list