Auto-vectorization of random C is a dead end

Article: Knights Landing Details
By: Brett (ggtgp.delete@this.yahoo.com), August 4, 2018 1:55 pm
Room: Moderated Discussions
Travis (travis.downs.delete@this.gmail.com) on August 3, 2018 7:58 pm wrote:
> I think vectorization of C and C++ isn't a total dead end, and we'll see more and more pushed by compiler
> vendors - but it definitely hasn't panned out as some magic cure to the end of Moore's law.

C++ is a total dead end.
I would recommend a real language like Swift or Go instead, but autovectorization is not available yet.

> I do think some of the projects are related to the low semantic level that C and C++
> operate at, which limits some opportunities - but that's the only problem. I see that
> the envelope for success for auto-vectorization has limits in every direction:
>
> 1) People who really care about performance of a few specific kernels, like HPC, media encoding,
> BLAS libraries, whatever, aren't going to use auto-vectorization in the first place in it is (a)
> too fragile and (b) they already know exactly how they want their code to vectorize.

#pragma clang loop vectorize(enable)
#pragma clang loop vectorize_width(2) interleave_count(2)

And a long list of variants for loops so that you do not have to write assembly.
https://llvm.org/docs/Vectorizers.html

> They are just
> using hand-written assembly or (less likely) intrinsics to get exactly what they want.
>
> This code is a very small % of overall code "by volume" but it is a significant amount of code
> weighted by runtime, and so this highly SIMD-friendly code will not be auto-vectorized.
>
> 2) The auto-vectorization abilities of various compilers varies widely and not in totally ordered
> way. That is, it's not like you can say compiles have some relationship like X also by Z. If that were the case at least you just need to target your stuff to X and it will
> auto-vectorized everywhere. Because it doesn't work like that, if you target multiple compilers
> you have this giant clusterfuck of always checking every compiler after every change.

LLVM is so much better than the alternatives I do not see why you would use any other compiler.

> 3) If you really rely on auto-vectorization you simply have to check that it worked, otherwise you're
> just opening yourself up to big performance regressions. If you are smart enough to read the assembly
> and see that it worked however, maybe you should just write it in the first place (or if you are lazy,
> copy paste the compiler's autovectorized code). In some way the "do it yourself" approach scales better:
> you only have do to it once, and perhaps update it for new ISAs, but with the check approach you have
> to check any time you change any surrounding code or compiler versions, etc.
>
> 4) Although often leading to worse results than assembly, intrinsics really lower the bar for
> writing it yourself. If the choice was between auto-vectorization and adding assembly to your
> build (and dealing with calling convention differences, debug info, eh_frame/SEH and other complications
> you get in assembly) - you would probably see a lot more willingness to try to bend the auto-vectorizer
> to your will. Intrinsics are much easier though: they avoid almost all of the problems of assembly
> and you can add them a few at a time. They are a gateway drug.
>
> 5) Even if the compilers had really good auto-vectorizers (they don't), they lack the global information needed
> to actually make hard decisions about what and how to autovectorize. The whole "AVX turbo" stuff really throws
> a wrench into optimization decisions: you better be damn sure you know what you are doing before you introduce
> some AVX or AVX512 instructions and slow the rest of the application by 30% or whatever. This kind of "global"
> problem is kind of unprecedented. Well you always had some kind of global tradeoffs in terms of code size/speed
> tradeoffs, but the impact wasn't anything like this: deciding to vectorize one loop that doesn't actually
> have many iterations might slow down the CPU for millions of instructions.
>
> Intel, who out of everyone has the most to win by actually having heavy use of all their new ISA,
> had to introduce a change to their compiler which basically disables most AVX512 vectorization
> unless you use a special compiler switch because vectorization was slowing everything down.

C++ is too pathetic to ever auto-vectorize, you have to use #pragma’s to tell the compiler what to do. Period.

> I don't know if this will ever be solved in a generic way (no PGO doesn't really do
> it). An "easy" by-hand solution is just to annotate the methods you want to vectorize,
> but that kind of chips away at the dream of autovectorization everywhere.

Eventually a real language will add autovectorization and people will dump C++.

> 6) SIMD kind of lives in this weird netherworld where it is rarely "best" for anything: if your code is
> really SIMD-friendly, it will often do even better on a GPU or GPU-like thing. If it's some ML thing it
> will do better on an ML-specific chip, etc. Even if it's more SIMD-friendly than GPU-friendly, the huge
> gap in raw power often results it being faster on GPU even if you achieve a lower percentage of peak or
> whatever. So SIMD mostly gets used because the programming model is way simpler: every CPU has it, you
> don't need to fight with drivers or GPU differences, there is an obvious time-sharing model already for
> the CPU. Mostly everything just works. GPU is a lot of work and also a different skill set... but GPU is
> always there lurking, ready to slice off a big part of the envelope where SIMD might be ideal.
>
> This is actually more a restriction of the SIMD emvelope, not really auto-vectorization
> - but anything that restricts SIMD use-cases also restricts auto-vectorization wins.
>
> 7) A lot of the really vectorizable stuff in an average application are things like memcpy, string operations
> and so on that are already vectorized in by hand in libc. So profiling various random applications do you
> do see a fair amount of AVX2 from time to time: but it's coming from libc code. Even C++ is designed in such
> a way that many higher level copy type functions can use memcpy as the underlying primitive if the objects
> are compatible. Compilers even try to recognize if have written a memcpy loop yourself and replace it by memcpy.
> If this wasn't the case, these kinds of things would be obvious big wins for vectorization.
>
> So I think auto-vectorization has room to succeed: perhaps more so in higher-level level languages
> that solve many inherent problems that C and C++ have (such as unknown aliasing, unknown alignment,
> low level operations) and especially it JITed languages which have the huge advantage of being
> solving the "is it worth it to take the AVX-turbo hit?" dynamically at runtime.
>
> The other fact is that auto-vectorizers still really just suck. I don't want to bash the compiler writers too
> much: it's a hard, mostly thankless, problem and they have come a long way, but compilers still generally really,
> really shitty autovectorized code on a regular basis. They can turn a 5-line function into 1,000 instructions.
> They can use hundreds of instructions on prologue and epilogue code, but then not unroll the main loop at all,
> losing a possible 300% speedup by saving a few instructions. They can just do some insane shuffling stuff: shuffling
> the same data 4 or 5 times just to do a single vectorized op. They might build up an entire vector one-element-at-a-time
> with slow pinsr instructions and then only do a few ops, and on and on.
>
> I think the biggest benefit I've seen from automatic use of vector instructions, that actually almost
> always works well, isn't the loop vectorizer at all but the use of 16 or 32 byte mov instructions
> for fixed sized copies, e.g., of structures. These show up all over the place and you get a nice
> win there (and at least these are in the "cheap tier" when it comes to AVX-turbo slowdowns).
>
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Knights Landing details (new article)David Kanter2014/01/03 12:58 AM
  eDRAM as cacheiz2014/01/03 04:39 AM
    eDRAM optionsEric Bron2014/01/09 03:45 AM
  Knights Landing details (new article)Emil Briggs2014/01/03 06:06 AM
  Knights Landing details (new article)Michael S2014/01/03 07:05 AM
    PCI-E and QPIDavid Kanter2014/01/03 12:11 PM
  eDRAM still seems too expensive ...Mark Roulo2014/01/03 10:48 AM
    Nevermind ... I see that you addressed this :-)Mark Roulo2014/01/03 10:51 AM
    eDRAM still seems too expensive ...Eric Bron2014/01/03 01:42 PM
  eDRAM or stacked DRAM?Patrick Chase2014/01/03 11:21 AM
    eDRAM or stacked DRAM?Wes Felter2014/01/03 03:00 PM
      eDRAM or stacked DRAM?Patrick Chase2014/01/03 07:26 PM
        eDRAM or stacked DRAM?tarlinian2014/06/23 09:59 PM
          eDRAM or stacked DRAM?Maynard Handley2014/06/24 01:47 AM
            eDRAM or stacked DRAM?Michael S2014/06/24 03:13 AM
            eDRAM or stacked DRAM?David Kanter2014/06/24 12:09 PM
              eDRAM or stacked DRAM?anon2014/06/24 07:50 PM
                eDRAM or stacked DRAM?Eric Bron2014/06/24 10:02 PM
                  eDRAM or stacked DRAM?anon2014/06/24 10:39 PM
                eDRAM or stacked DRAM?Michael S2014/06/25 01:46 AM
              eDRAM or stacked DRAM?Michael S2014/06/25 01:29 AM
          eDRAM or stacked DRAM?Eric Bron2014/06/24 05:37 AM
            eDRAM or stacked DRAM?tarlinian2014/06/24 08:53 AM
              eDRAM or stacked DRAM?Eric Bron2014/06/24 09:09 AM
                eDRAM or stacked DRAM?tarlinian2014/06/24 09:40 AM
                  eDRAM or stacked DRAM?Eric Bron2014/06/24 10:10 AM
                    eDRAM or stacked DRAM?Eric Bron2014/06/24 10:12 AM
          eDRAM or stacked DRAM?Wes Felter2014/06/24 10:09 PM
            eDRAM or stacked DRAM?Michael S2014/06/25 02:02 AM
  Why not tag-inclusive L3?Paul A. Clayton2014/01/03 04:28 PM
    Why not tag-inclusive L3?Eric Bron2014/01/04 03:22 AM
  Knights Landing L/S bandwidthNicolas Capens2014/01/04 05:43 AM
    Knights Landing L/S bandwidthEric Bron2014/01/04 06:20 AM
      Knights Landing L/S bandwidthNicolas Capens2014/01/04 02:55 PM
        Knights Landing L/S bandwidthEric Bron2014/01/04 03:27 PM
          Knights Landing L/S bandwidthhobold2014/01/04 04:23 PM
            Knights Landing L/S bandwidthEric Bron2014/01/04 05:20 PM
              Knights Landing L/S bandwidthMichael S2014/01/05 03:42 AM
                Knights Landing L/S bandwidthEric Bron2014/01/05 03:49 AM
                  Knights Landing L/S bandwidthPatrick Chase2014/01/11 08:13 PM
                    Knights Landing L/S bandwidthNicolas Capens2014/01/13 08:39 PM
                Knights Landing L/S bandwidthNicolas Capens2014/01/05 03:18 PM
                  Knights Landing L/S bandwidthMichael S2014/01/06 04:09 AM
                    Knights Landing L/S bandwidthEric Bron2014/01/06 05:11 AM
                      Knights Landing L/S bandwidthMichael S2014/01/06 05:40 AM
                        Knights Landing L/S bandwidthEric Bron2014/01/06 05:54 AM
                        Knights Landing L/S bandwidthEric Bron2014/01/08 09:00 AM
                    Knights Landing L/S bandwidthNicolas Capens2014/01/07 03:31 PM
                      Knights Landing L/S bandwidthMichael S2014/01/07 04:17 PM
                        Knights Landing L/S bandwidthNicolas Capens2014/01/07 09:55 PM
                          Knights Landing L/S bandwidthMichael S2014/01/08 01:42 AM
                            Knights Landing L/S bandwidthGabriele Svelto2014/01/08 08:30 AM
                              Occam's razorNicolas Capens2014/01/08 02:33 PM
                                Occam's razorGabriele Svelto2014/01/08 02:51 PM
                                  Occam's razorEric Bron2014/01/08 03:28 PM
                                    Occam's razorbakaneko2014/01/09 04:45 AM
                                      Occam's razoranon2014/01/09 05:02 AM
                                        Occam's razorbakaneko2014/01/09 06:24 AM
                                          Occam's razorbakaneko2014/01/09 06:51 AM
                                            Occam's razoranon2014/01/09 07:18 AM
                                          Occam's razoranon2014/01/09 07:16 AM
                                            Occam's razorbakaneko2014/01/09 08:43 AM
                                              Occam's razoranon2014/01/09 09:17 AM
                                                Occam's razorbakaneko2014/01/09 11:12 AM
                                                  Occam's razorEric Bron2014/01/09 11:18 AM
                                                    Occam's razorbakaneko2014/01/09 11:58 AM
                                                  Occam's razoranon2014/01/09 12:35 PM
                                                    Occam's razorbakaneko2014/01/12 10:48 AM
                                                  99.9% not a new extensionNicolas Capens2014/01/10 11:39 AM
                                                    Compiler complexityGabriele Svelto2014/01/11 03:58 AM
                                                      Compiler complexityNicolas Capens2014/01/11 01:20 PM
                                                        Compiler complexityGabriele Svelto2014/01/11 03:17 PM
                                                          Patent pendingNicolas Capens2014/01/14 07:21 PM
                                                    99.9% not a new extensionbakaneko2014/01/12 11:08 AM
                                  L0 data cacheEric Bron2014/01/08 04:52 PM
                                  Occam's razorDavid Kanter2014/01/08 04:53 PM
                                    Occam's razorNicolas Capens2014/01/09 03:07 AM
                                      Occam's razorRicardo B2014/01/09 05:21 AM
                                        Virtually indexed, untaggedNicolas Capens2014/01/10 11:27 AM
                                          Virtually indexed, untaggedGabriele Svelto2014/01/11 04:08 AM
                                            Virtually indexed, untaggedNicolas Capens2014/01/11 09:45 PM
                                              Virtually indexed, untaggedDavid Kanter2014/01/12 02:13 AM
                                                Virtually indexed, untaggedanon2014/01/12 04:02 AM
                                                Virtually indexed, untaggedNicolas Capens2014/01/16 09:55 AM
                                              Virtually indexed, untaggedMichael S2014/01/12 04:09 AM
                                                Virtually indexed, untaggedNicolas Capens2014/01/16 10:47 AM
                                      Occam's razorDavid Kanter2014/01/09 06:42 PM
                                        Occam's razorNicolas Capens2014/01/10 02:22 PM
                                          Occam's razorDavid Kanter2014/01/10 04:06 PM
                                            MEM : ALU ratioNicolas Capens2014/01/11 12:24 AM
                                              MEM : ALU ratioGabriele Svelto2014/01/11 03:47 AM
                                                MEM : ALU ratioEric Bron2014/01/11 04:41 AM
                                                  MEM : ALU ratioEric Bron2014/01/11 05:06 AM
                                                    MEM : ALU ratioDavid Kanter2014/01/11 08:28 PM
                                                      MEM : ALU ratioEric Bron nli2014/01/12 02:54 AM
                                                  MEM : ALU ratioGabriele Svelto2014/01/11 10:15 AM
                                                MEM : ALU ratioNicolas Capens2014/01/14 06:56 PM
                                                  Etiquette in linking to papersPaul A. Clayton2014/01/14 07:44 PM
                                                  MEM : ALU ratioanon2014/01/14 08:32 PM
                                                    L0 power costNicolas Capens2014/01/16 02:05 PM
                                                      L0 power costanon2014/01/16 10:01 PM
                                                        L0 power costNicolas Capens2014/01/19 12:30 AM
                                                          Links revealedPaul A. Clayton2014/01/19 04:47 PM
                                                          L0 power costanon2014/01/20 01:19 AM
                                                            L0 power costNicolas Capens2014/01/20 02:49 PM
                                                              L0 power costanon2014/01/21 01:18 AM
                                                                Q.E.D.Nicolas Capens2014/01/21 08:44 PM
                                                                  Q.E.D.anon2014/01/21 09:24 PM
                                                                    Straw manNicolas Capens2014/01/23 11:56 PM
                                                                      Straw mananon2014/01/25 06:46 AM
                                                                        Still waiting for an explanationNicolas Capens2014/01/26 12:19 AM
                                                                          Still waiting for an explanationExophase2014/01/26 01:13 PM
                                                                            Still waiting for an explanationbakaneko2014/01/26 11:52 PM
                                                                  Q.E.D.Ricardo B2014/01/22 06:58 PM
                                                                    Q.E.D.Michael S2014/01/23 04:59 AM
                                                                      L0 entry countNicolas Capens2014/01/24 01:11 AM
                                                                        L0 entry countEric Bron2014/01/24 02:08 AM
                                                                          L0 entry countMichael S2014/01/24 06:18 AM
                                                                            L0 entry countEric Bron2014/01/24 07:15 AM
                                                                              L0 entry countMichael S2014/01/24 08:10 AM
                                                                                L0 entry countEric Bron2014/01/24 08:20 AM
                                                                          L0 entry countNicolas Capens2014/01/24 02:33 PM
                                                                            L0 entry countEric Bron2014/01/24 03:20 PM
                                                                              L0 entry count and L1 read port orthogonalityNicolas Capens2014/01/26 01:14 AM
                                                                                L0 entry count and L1 read port orthogonalityEric Bron2014/01/26 03:49 AM
                                                                    L0 hit rateNicolas Capens2014/01/24 12:49 AM
                                                                      L0 hit rateRicardo B2014/01/24 06:42 AM
                                                                        L0 hit rateExophase2014/01/24 01:37 PM
                                                                          L0 hit rateEric Bron2014/01/24 02:12 PM
                                                                        L0 vs RF powerNicolas Capens2014/01/24 02:43 PM
                                              MEM : ALU ratioDavid Kanter2014/01/11 01:47 PM
                                                MEM : ALU ratioNicolas Capens2014/01/16 09:23 AM
                                                  MEM : ALU ratioStubabe2014/01/17 12:58 PM
                                                    MEM : ALU ratioStubabe2014/01/17 01:42 PM
                                                      MEM : ALU ratioMichael S2014/01/18 04:57 PM
                                                        MEM : ALU ratiobakaneko2014/01/19 12:47 AM
                                                    MEM : ALU ratioNicolas Capens2014/01/20 03:48 PM
                                                      It's called "tunnel vision" (NT)iz2014/01/20 04:36 PM
                                                      MEM : ALU ratioMichael S2014/01/20 04:37 PM
                                                        MEM : ALU ratioStubabe2014/01/21 04:54 PM
                                                        MEM : ALU ratioNicolas Capens2014/01/21 10:07 PM
                                                          MEM : ALU ratioMichael S2014/01/22 08:17 AM
                                                            MEM : ALU ratioNicolas Capens2014/01/24 03:33 PM
                                                      MEM : ALU ratioStubabe2014/01/21 04:32 PM
                                                        MEM : ALU ratioMichael S2014/01/22 08:56 AM
                                                          MEM : ALU ratioStubabe2014/01/23 09:06 AM
                                                            MEM : ALU ratioEric Bron2014/01/23 09:45 AM
                                                              editEric Bron2014/01/23 09:49 AM
                                                            MEM : ALU ratioMichael S2014/01/23 09:58 AM
                                                              MEM : ALU ratioEric Bron2014/01/23 10:29 AM
                                                                MEM : ALU ratioMichael S2014/01/23 10:33 AM
                                                              MEM : ALU ratioStubabe2014/01/24 04:50 AM
                                                MEM : ALU ratiobakaneko2014/01/23 10:36 AM
                                              MEM : ALU ratioNoSpammer2014/01/11 03:39 PM
                                                L1 vs L0 access costNicolas Capens2014/01/16 03:17 PM
                                                  L1 vs L0 access costNoSpammer2014/01/19 01:48 PM
                                                    L1 vs L0 access costdmcq2014/01/22 05:45 AM
                                                      L1 vs L0 access costGabriele Svelto2014/01/22 07:29 AM
                                                        L1 vs L0 access costdmcq2014/01/22 01:33 PM
                                                          L1 vs L0 access costGabriele Svelto2014/01/22 04:33 PM
                                                            L1 vs L0 access costdmcq2014/01/24 04:19 AM
                                                    L1 vs L0 access costNicolas Capens2014/01/24 02:16 AM
                                      Occam's razorPatrick Chase2014/01/13 11:19 AM
                                  Occam's razorNicolas Capens2014/01/09 12:40 AM
                                    Occam's razorGabriele Svelto2014/01/09 02:41 AM
                                      Occam's razorEric Bron2014/01/09 02:54 AM
                                        Occam's razorGabriele Svelto2014/01/09 06:35 AM
                                          Occam's razorEric Bron2014/01/09 07:14 AM
                                            avoiding redundant loadsEric Bron2014/01/09 07:18 AM
                                            AVX2 versionEric Bron2014/01/09 07:32 AM
                                      Occam's razorAmiba Gelos2014/01/09 03:01 AM
                                        Occam's razorEric Bron2014/01/09 03:06 AM
                                          Occam's razorAmiba Gelos2014/01/09 03:43 AM
                                            Occam's razorEric Bron2014/01/09 04:02 AM
                                        L0 access latencyNicolas Capens2014/01/09 04:27 AM
                                          L0 access latencyAmiba Gelos2014/01/09 05:16 AM
                                            compared to L0$ i would say banking is far more likely (NT)Amiba Gelos2014/01/09 05:20 AM
                                            L0 access latencyNicolas Capens2014/01/10 03:20 PM
                                      Occam's razorNicolas Capens2014/01/09 04:19 AM
                                    Occam's razorNoSpammer2014/01/09 12:55 PM
                                      Occam's razorNicolas Capens2014/01/10 03:40 PM
                                        Occam's razorMichael S2014/01/11 10:21 AM
                                        Occam's razorMichael S2014/01/12 03:21 PM
                                          KNC compiler outputNicolas Capens2014/01/16 06:39 PM
                                            KNC compiler outputMichael S2014/01/18 05:13 PM
                                    L0 cache coherencyDavid Kanter2014/01/11 08:39 PM
                                Occam's razoranon2014/01/09 05:12 AM
                            Knights Landing L/S bandwidthEric Bron2014/01/08 10:46 AM
                              Knights Landing L/S bandwidthMichael S2014/01/08 11:23 AM
                            Knights Landing L/S bandwidthNicolas Capens2014/01/08 02:02 PM
                              Knights Landing L/S bandwidthMichael S2014/01/08 02:29 PM
                                Knights Landing L/S bandwidthEric Bron2014/01/08 02:54 PM
                                  Knights Landing L/S bandwidthMichael S2014/01/08 03:00 PM
                                    Knights Landing L/S bandwidthEric Bron2014/01/08 03:13 PM
                                      Knights Landing L/S bandwidthMichael S2014/01/08 03:28 PM
                                        Knights Landing L/S bandwidthEric Bron2014/01/08 03:32 PM
                                          Knights Landing L/S bandwidthMichael S2014/01/08 03:40 PM
                                            Knights Landing L/S bandwidthEric Bron2014/01/08 03:51 PM
                                              Knights Landing L/S bandwidthMichael S2014/01/09 12:18 PM
                          Knights Landing L/S bandwidthPatrick Chase2014/01/12 10:03 PM
                            Also page/line splits?David Kanter2014/01/12 10:50 PM
                              Also page/line splits?anon2014/01/13 01:44 AM
                                Also page/line splits?none2014/01/13 03:09 AM
                                  Also page/line splits?anon2014/01/13 04:19 AM
                            Knights Landing L/S bandwidthExophase2014/01/13 12:15 AM
                            Knights Landing L/S bandwidthanon2014/01/13 01:41 AM
                              Knights Landing L/S bandwidthPatrick Chase2014/01/13 11:14 AM
                            Aliased writesNicolas Capens2014/01/14 09:46 PM
                      Knights Landing L/S bandwidthRicardo B2014/01/07 04:27 PM
                        Knights Landing L/S bandwidthNicolas Capens2014/01/07 10:28 PM
                          Knights Landing L/S bandwidthRicardo B2014/01/08 02:13 AM
                            Knights Landing L/S bandwidthEric Bron2014/01/08 11:10 AM
                            Knights Landing L/S bandwidthNicolas Capens2014/01/08 03:31 PM
                              Knights Landing L/S bandwidthRicardo B2014/01/08 03:58 PM
                                Knights Landing L/S bandwidthG. Gouvine2014/01/09 09:10 AM
                                  Knights Landing L/S bandwidthRicardo B2014/01/09 11:19 AM
                                    Efficient load queue vs. efficient L0 cacheNicolas Capens2014/01/11 12:28 PM
                                      Efficient load queue vs. efficient L0 cacheG. Gouvine2014/01/13 02:11 AM
                                        Efficient load queue vs. efficient L0 cacheMichael S2014/01/13 03:43 AM
                                Register file read port requirementsNicolas Capens2014/01/11 12:55 AM
                                  Register file read port requirementsRicardo B2014/01/11 05:24 AM
                                    Register file read port requirementsEric Bron2014/01/11 05:32 AM
                                      Register file read port requirementsMichael S2014/01/11 09:57 AM
                                        Register file read port requirementsEric Bron2014/01/11 11:16 AM
                                          Register file read port requirementsMichael S2014/01/11 11:46 AM
                                            Register file read port requirementsEric Bron2014/01/11 12:12 PM
                                              Register file read port requirementsMichael S2014/01/11 12:36 PM
                                                Register file read port requirementsEric Bron2014/01/11 12:51 PM
                                              Register file read port requirementsPatrick Chase2014/01/13 02:27 PM
                                                Register file read port requirementsEric Bron2014/01/13 04:24 PM
                                                  Register file read port requirementsPatrick Chase2014/01/13 06:02 PM
                                                    Register file read port requirementsEric Bron2014/01/14 04:50 AM
                                                      Register file read port requirementsMichael S2014/01/14 11:36 AM
                                                        Register file read port requirementsEric Bron nli2014/01/14 01:04 PM
                                            Register file read port requirementsPatrick Chase2014/01/13 02:17 PM
                                              Register file read port requirementsMichael S2014/01/15 04:27 AM
                                        Register file read port requirementsEric Bron2014/01/11 11:28 AM
                                          Register file read port requirementsMichael S2014/01/11 12:07 PM
                                            Register file read port requirementsPatrick Chase2014/01/13 02:40 PM
                                          Register file read port requirementsPatrick Chase2014/01/13 02:34 PM
                                      Register file read port requirementsRicardo B2014/01/11 12:55 PM
                                        Register file read port requirementsEric Bron2014/01/11 01:17 PM
                                          Register file read port requirementsRicardo B2014/01/11 02:36 PM
                                            Register file read port requirementsEric Bron2014/01/11 02:42 PM
                                              Register file read port requirementsRicardo B2014/01/11 03:20 PM
                                                Register file read port requirementsEric Bron2014/01/11 03:26 PM
                                                  Register file read port requirementsMichael S2014/01/11 04:07 PM
                                                    Register file read port requirementsRicardo B2014/01/11 04:38 PM
                                                      Register file read port requirementsMichael S2014/01/11 04:49 PM
                                                Register file read port requirementsEric Bron2014/01/11 03:39 PM
                                                  Register file read port requirementsEric Bron2014/01/11 03:41 PM
                                                  Register file read port requirementsRicardo B2014/01/11 04:30 PM
                                    Register file read port requirementsNicolas Capens2014/01/11 12:09 PM
              Knights Landing L/S bandwidthanon2014/01/05 06:55 AM
                Knights Landing L/S bandwidthEric Bron2014/01/05 07:30 AM
                  Knights Landing L/S bandwidthanon2014/01/06 01:07 AM
                    Knights Landing L/S bandwidthEric Bron2014/01/06 02:38 AM
                      Knights Landing L/S bandwidthanon2014/01/06 04:01 AM
                        Knights Landing L/S bandwidthEric Bron2014/01/06 04:44 AM
                          Knights Landing L/S bandwidthanon2014/01/06 05:39 AM
                            Knights Landing L/S bandwidthEric Bron2014/01/06 06:00 AM
                              Knights Landing L/S bandwidthanon2014/01/06 06:44 AM
                                Knights Landing L/S bandwidthMichael S2014/01/06 08:54 AM
                                  Knights Landing L/S bandwidthEric Bron2014/01/06 10:11 AM
                                    Knights Landing L/S bandwidthMichael S2014/01/06 10:14 AM
                                      Knights Landing L/S bandwidthEric Bron2014/01/06 11:37 AM
                                        Knights Landing L/S bandwidthRicardo B2014/01/08 06:25 AM
                                          Knights Landing L/S bandwidthEric Bron2014/01/08 08:36 AM
                                            Knights Landing L/S bandwidthEric Bron2014/01/08 08:41 AM
                                            KNC code generator with EVEX back-end?Michael S2014/01/08 09:43 AM
                                              KNC code generator with EVEX back-end?Exophase2014/01/08 10:00 AM
                                                KNC code generator with EVEX back-end?Ricardo B2014/01/08 11:39 AM
                                                  KNC code generator with EVEX back-end?Eric Bron2014/01/08 12:15 PM
                                                    KNC code generator with EVEX back-end?Exophase2014/01/08 01:17 PM
                                                      KNC code generator with EVEX back-end?Ricardo B2014/01/08 02:06 PM
                                                        KNC code generator with EVEX back-end?Exophase2014/01/08 02:24 PM
                                                        KNC code generator with EVEX back-end?Eric Bron2014/01/08 02:38 PM
                                                    KNC code generator with EVEX back-end?Michael S2014/01/08 01:54 PM
                                              KNC code generator with EVEX back-end?Eric Bron2014/01/08 10:25 AM
                                              KNC code generator with EVEX back-end?Eric Bron2014/01/08 10:35 AM
                                                KNC code generator with EVEX back-end?Michael S2014/01/08 11:07 AM
                                                  KNC code generator with EVEX back-end?Eric Bron2014/01/08 11:24 AM
                                                    KNC code generator with EVEX back-end?Michael S2014/01/08 11:43 AM
                                                      KNC code generator with EVEX back-end?Eric Bron2014/01/08 01:23 PM
                                              KNC code generator with EVEX back-end?Eric Bron2014/01/08 10:43 AM
                                          AVX2 code much different than AVX-512Eric Bron2014/01/08 08:52 AM
                                            evil questionhobold2014/01/08 10:22 AM
                                              evil questionEric Bron2014/01/08 10:27 AM
                                                evil questionhobold2014/01/08 02:33 PM
                                                  evil questionMichael S2014/01/08 02:37 PM
                                                    stupid question (was: evil question)hobold2014/01/09 05:41 AM
                                                      stupid question (was: evil question)Eric Bron2014/01/09 05:52 AM
                                                        stupid question (was: evil question)Michael S2014/01/09 08:00 AM
                                                          stupid question (was: evil question)Michael S2014/01/09 08:12 AM
                                                            stupid question (was: evil question)Eric Bron2014/01/09 10:47 AM
                                                              stupid question (was: evil question)Michael S2014/01/09 11:48 AM
                                                                more decisive (hopefully) test caseMichael S2014/01/09 12:01 PM
                                                                  more decisive (hopefully) test caseEric Bron2014/01/09 12:08 PM
                                                                    more decisive (hopefully) test caseMichael S2014/01/09 12:24 PM
                                                                      more decisive (hopefully) test caseEric Bron2014/01/09 12:27 PM
                                                                        more decisive (hopefully) test caseMichael S2014/01/09 12:33 PM
                                                                  AVX2Eric Bron2014/01/09 12:14 PM
                                                                    AVX2Michael S2014/01/09 12:30 PM
                                                                      AVX2Eric Bron2014/01/09 12:40 PM
                                                                  another tryMichael S2014/01/09 03:02 PM
                                                                    another tryEric Bron2014/01/09 03:33 PM
                                                                      another tryMichael S2014/01/09 04:20 PM
                                                                      another try - ignore misformated mess aboveMichael S2014/01/09 04:24 PM
                                                                        another try - ignore misformated mess aboveGabriele Svelto2014/01/10 01:01 AM
                                                                          another try - ignore misformated mess aboveEric Bron2014/01/10 03:05 AM
                                                                            another try - ignore misformated mess aboveMichael S2014/01/11 10:23 AM
                                                                              another try - ignore misformated mess aboveEric Bron2014/01/11 11:08 AM
                                                                                another try - ignore misformated mess aboveMichael S2014/01/11 12:09 PM
                                                                                  another try - ignore misformated mess aboveMichael S2014/01/11 12:12 PM
                                                                                    another try - ignore misformated mess aboveEric Bron2014/01/11 12:24 PM
                                                                                      another try - ignore misformated mess aboveMichael S2014/01/11 01:24 PM
                                                                                        another try - ignore misformated mess aboveEric Bron2014/01/11 02:11 PM
                                                                                          another try - ignore misformated mess aboveMichael S2014/01/11 02:18 PM
                                                                                            another try - ignore misformated mess aboveEric Bron2014/01/11 02:27 PM
                                                                                              another try - ignore misformated mess aboveMichael S2014/01/11 02:29 PM
                                                                                                another try - ignore misformated mess aboveEric Bron2014/01/11 02:46 PM
                                                                                                  another try - ignore misformated mess aboveEric Bron2014/01/11 02:46 PM
                                                                                                  another try - ignore misformated mess aboveMichael S2014/01/11 03:28 PM
                                                                                        another try - ignore misformated mess aboveEric Bron2014/01/11 02:17 PM
                                                                                          another try - ignore misformated mess aboveMichael S2014/01/11 02:24 PM
                                                                    KNC versionMichael S2014/01/11 05:19 PM
                                                                      KNC versionEric Bron nli2014/01/12 02:59 AM
                                                                        KNC versionGabriele Svelto2014/01/12 09:06 AM
                                                  evil questionEric Bron2014/01/08 02:41 PM
              Knights Landing L/S bandwidthPatrick Chase2014/01/05 11:20 PM
                Knights Landing L/S bandwidthEric Bron2014/01/06 02:45 AM
                  Knights Landing L/S bandwidthanon2014/01/06 04:12 AM
                    Knights Landing L/S bandwidthMichael S2014/01/06 04:17 AM
                      Knights Landing L/S bandwidthanon2014/01/06 05:20 AM
          Knights Landing L/S bandwidthNicolas Capens2014/01/04 05:34 PM
            Knights Landing L/S bandwidthEric Bron2014/01/04 05:44 PM
              Knights Landing L/S bandwidthNicolas Capens2014/01/05 12:25 PM
                Knights Landing L/S bandwidthEric Bron2014/01/05 01:50 PM
                  Knights Landing L/S bandwidthNicolas Capens2014/01/05 03:34 PM
                    Might even help with gatherNicolas Capens2014/01/05 03:40 PM
                      What is an L0 cache?David Kanter2014/01/05 10:44 PM
                        What is an L0 cache?anon2014/01/06 05:57 AM
                          What is an L0 cache?Nicolas Capens2014/01/06 12:57 PM
                            What is an L0 cache?anon2014/01/06 02:18 PM
    Knights Landing L/S bandwidthDavid Kanter2014/01/04 10:58 AM
      Knights Landing L/S bandwidthNicolas Capens2014/01/04 04:24 PM
        Knights Landing L/S bandwidthEric Bron2014/01/04 04:46 PM
          Knights Landing L/S bandwidthKonrad Schwarz2014/01/08 12:48 AM
            Knights Landing L/S bandwidthMichael S2014/01/08 02:45 AM
        Knights Landing L/S bandwidthDavid Kanter2014/01/05 01:44 AM
          Knights Landing L/S bandwidthEric Bron2014/01/05 03:55 AM
          Knights Landing L/S bandwidthNicolas Capens2014/01/05 12:18 PM
            Knights Landing L/S bandwidthMaynard Handley2014/01/05 11:33 PM
              Knights Landing L/S bandwidthEric Bron2014/01/06 04:02 AM
                Knights Landing L/S bandwidthMichael S2014/01/06 04:23 AM
                  Knights Landing L/S bandwidthEric Bron2014/01/06 04:35 AM
                    Knights Landing L/S bandwidthMichael S2014/01/06 05:20 AM
                      Knights Landing L/S bandwidthMichael S2014/01/06 05:32 AM
                      Knights Landing L/S bandwidthEric Bron2014/01/06 05:36 AM
                        Knights Landing L/S bandwidthMichael S2014/01/06 06:00 AM
                          Knights Landing L/S bandwidthEric Bron2014/01/06 06:07 AM
                          Knights Landing L/S bandwidthEric Bron2014/01/06 06:14 AM
                            editsEric Bron2014/01/06 06:22 AM
                              optimized versionEric Bron2014/01/06 06:35 AM
                                yet more optimized versionEric Bron2014/01/06 06:42 AM
                                  latest version for todayEric Bron2014/01/06 06:51 AM
                                    Probably just L2 bandwith limitedNicolas Capens2014/01/06 11:48 AM
                                  yet more optimized versionMaynard Handley2014/01/06 06:54 PM
                                optimized versionMaynard Handley2014/01/06 06:52 PM
                                  optimized versionMichael S2014/01/07 10:42 AM
                                    optimized versionNicolas Capens2014/01/07 12:36 PM
                                      optimized versionMichael S2014/01/07 03:41 PM
                                        optimized versionNicolas Capens2014/01/07 10:52 PM
                                          optimized versionMichael S2014/01/08 02:10 AM
                                    optimized versionEric Bron2014/01/07 02:34 PM
                                      optimized versionMichael S2014/01/07 03:18 PM
                                        optimized versionEric Bron2014/01/07 03:30 PM
                                          optimized versionEric Bron2014/01/07 03:33 PM
                                            optimized versionMichael S2014/01/07 03:57 PM
                                    optimized versionMaynard Handley2014/01/07 06:50 PM
                                      optimized versionMichael S2014/01/08 02:39 AM
                Knights Landing L/S bandwidthMaynard Handley2014/01/06 06:47 PM
              Knights Landing L/S bandwidthNicolas Capens2014/01/06 09:18 AM
                Knights Landing L/S bandwidthMaynard Handley2014/01/06 06:56 PM
                  Knights Landing L/S bandwidthNicolas Capens2014/01/07 12:18 PM
        Knights Landing L/S bandwidthNoSpammer2014/01/05 01:15 PM
          Knights Landing L/S bandwidthNicolas Capens2014/01/05 03:06 PM
            Knights Landing L/S bandwidthNoSpammer2014/01/06 04:20 AM
              Knights Landing L/S bandwidthNicolas Capens2014/01/06 11:54 AM
                Knights Landing L/S bandwidthNoSpammer2014/01/06 01:24 PM
                  Knights Landing L/S bandwidthNicolas Capens2014/01/06 09:15 PM
                    Knights Landing L/S bandwidthNoSpammer2014/01/07 03:58 AM
                      Knights Landing L/S bandwidthNicolas Capens2014/01/07 03:18 PM
                        Knights Landing L/S bandwidthNoSpammer2014/01/08 01:38 PM
                          Knights Landing L/S bandwidthNicolas Capens2014/01/08 11:14 PM
  AVX512F questionMichael S2014/01/06 10:18 AM
    AVX512F questionNicolas Capens2014/01/06 12:01 PM
  Knights Landing - time for obituary?Michael S2018/07/31 03:00 PM
    Knights Landing - time for obituary?Adrian2018/07/31 09:24 PM
      Knights Landing - time for obituary?SoftwareEngineer2018/08/01 02:15 AM
        auto-vectorization is a dead endMichael S2018/08/01 03:48 AM
          Auto-vectorization of random C is a dead endMark Roulo2018/08/01 11:07 AM
            Auto-vectorization of random C is a dead endPassing Through2018/08/01 01:35 PM
              Auto-vectorization of random C is a dead endDavid Kanter2018/08/01 10:44 PM
                Auto-vectorization of random C is a dead endPassing Through2018/08/02 01:51 AM
            Auto-vectorization of random C is a dead endSoftwareEngineer2018/08/02 01:19 AM
              Auto-vectorization of random C is a dead endMark Roulo2018/08/02 09:50 AM
                Auto-vectorization of random C is a dead endMichael S2018/08/02 12:11 PM
                  Auto-vectorization of random C is a dead endj2018/08/02 11:37 PM
                    Auto-vectorization of random C is a dead endMichael S2018/08/03 03:50 AM
                      Auto-vectorization of random C is a dead endrwessel2018/08/03 11:06 PM
                  Auto-vectorization of random C is a dead endRicardo B2018/08/03 04:20 AM
                    Auto-vectorization of random C is a dead endMichael S2018/08/03 05:37 AM
                      Auto-vectorization of random C is a dead endRicardo B2018/08/03 11:22 AM
            Auto-vectorization of random C is a dead endTravis2018/08/03 07:58 PM
              Potential way to autovectorization in the future. Jouni Osmala2018/08/03 10:22 PM
                Potential way to autovectorization in the future. Jukka Larja2018/08/04 04:03 AM
                  Potential way to autovectorization in the future. Passing Through2018/08/04 06:47 AM
                Potential way to autovectorization in the future. Travis2018/08/04 01:50 PM
                  Potential way to autovectorization in the future. Michael S2018/08/04 02:33 PM
                    Potential way to autovectorization in the future. Travis2018/08/04 02:48 PM
                    Potential way to autovectorization in the future. Passing Through2018/08/04 02:58 PM
                  Skylake server/client AVX PRF speculationJeff S.2018/08/04 05:42 PM
                    Skylake server/client AVX PRF speculationanonymou52018/08/04 06:21 PM
                      Skylake server/client AVX PRF speculationJeff S.2018/08/04 06:38 PM
                        Skylake server/client AVX PRF speculationanonymou52018/08/04 07:45 PM
                          Skylake server/client AVX PRF speculationJeff S.2018/08/04 08:08 PM
                            Skylake server/client AVX PRF speculationanonymou52018/08/04 08:18 PM
                              Skylake server/client AVX PRF speculationNomad2018/08/05 11:10 PM
                                Skylake server/client AVX PRF speculationanonymou52018/08/06 12:14 PM
                                Skylake server/client AVX PRF speculationTravis2018/08/06 08:43 PM
                            Skylake server/client AVX PRF speculationTravis2018/08/06 08:39 PM
              Auto-vectorization of random C is a dead endBrett2018/08/04 01:55 PM
                Auto-vectorization of random C is a dead endTravis2018/08/04 02:38 PM
                  Auto-vectorization of random C is a dead endPassing Through2018/08/04 03:00 PM
                    New record for shortest post by Ireland - AI crashed? (NT)Travis2018/08/04 03:34 PM
                      New record for shortest post by Ireland - AI crashed?Passing Through2018/08/04 04:12 PM
                        New record for shortest post by Ireland - AI crashed?anonymou52018/08/04 06:00 PM
                          New record for shortest post by Ireland - AI crashed?Brett2018/08/04 06:40 PM
                            New record for shortest post by Ireland - AI crashed?anonymou52018/08/04 07:38 PM
                  Auto-vectorization of random C is a dead endnoko2018/08/04 09:46 PM
        The story of ispc (a 12 entry blog series)Simon Farnsworth2018/08/01 03:50 AM
          the 1st link is empty (NT)Michael S2018/08/01 04:05 AM
            the 1st link is emptySimon Farnsworth2018/08/01 06:42 AM
          Interesting read, thanks! (NT)SoftwareEngineer2018/08/01 06:57 AM
          Amazing readLaurent2018/08/01 09:00 AM
            Amazing readPassing Through2018/08/01 01:13 PM
              Amazing readDoug S2018/08/01 02:30 PM
                Amazing readPassing Through2018/08/01 02:49 PM
          ISPC vs OpenCL?j2018/08/02 11:41 PM
            ISPC vs OpenCL?coppcie2018/08/03 03:55 AM
            ISPC vs OpenCL?Passing Through2018/08/03 04:07 AM
              Go awayForum Reader2018/08/03 08:11 AM
              ISPC vs OpenCL?Gian-Carlo Pascutto2018/09/11 06:50 AM
            ISPC vs OpenCL?SoftwareEngineer2018/08/03 04:18 AM
        Knights Landing - time for obituary?Kevin G2018/08/01 07:14 AM
          Knights Landing - time for obituary?SoftwareEngineer2018/08/01 07:29 AM
        Knights Landing - time for obituary?Passing Through2018/08/01 07:38 AM
          Knights Landing - time for obituary?Eric Bron2018/08/02 06:57 AM
            Knights Landing - time for obituary?Passing Through2018/08/02 12:29 PM
              Knights Landing - time for obituary?Eric Bron2018/08/02 01:49 PM
                Knights Landing - time for obituary?Passing Through2018/08/02 02:17 PM
          chess algorithms vs, low level optimizationsEric Bron2018/08/02 07:15 AM
            AlphaZero vs StockfishMichael S2018/08/02 07:55 AM
              AlphaZero vs StockfishEric Bron2018/08/02 08:24 AM
                AlphaZero vs StockfishMichael S2018/08/02 09:01 AM
                  AlphaZero vs StockfishEric Bron2018/08/02 09:11 AM
                  Leela 4th vs all othersEric Bron nli2018/09/11 03:40 AM
              AlphaZero vs StockfishGian-Carlo Pascutto2018/09/11 06:31 AM
                AlphaZero vs StockfishEric Bron2018/09/11 09:26 AM
                  AlphaZero vs StockfishEric Bron2018/09/11 09:58 AM
                    AlphaZero vs StockfishPer Hesselgren2018/12/31 10:04 AM
                Leela Chess ZeroPer Hesselgren2018/12/31 12:00 PM
              AlphaZero vs Stockfish (on Xeon)Per Hesselgren2018/12/31 09:59 AM
        C/C++ and vector/parallel/distributedRichardC2018/08/02 05:50 AM
      Knights Landing - time for obituary?Passing Through2018/08/01 07:52 AM
        Knights Landing - time for obituary?Kevin G2018/08/01 02:03 PM
          Knights Landing - time for obituary?Passing Through2018/08/01 02:33 PM
      Knights Landing - time for obituary?Kevin G2018/08/01 08:26 AM
        Knights Landing - time for obituary?Kevin G2018/08/01 08:26 AM
        Knights Landing - time for obituary?juanrga2018/08/01 02:26 PM
          Knights Landing - time for obituary?hobel2018/08/02 05:46 AM
    Knights Landing - time for obituary?juanrga2018/07/31 11:25 PM
      Right, time for obituary for whole LRB lineageAM2018/08/02 11:46 AM
        Right, time for obituary for whole LRB lineageAdrian2018/08/02 11:46 PM
          LRBNI, AVX512, etc...Michael S2018/08/03 05:23 AM
        Right, time for obituary for whole LRB lineagejuanrga2018/08/03 04:11 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊