Auto-vectorization of random C is a dead end

Article: Knights Landing Details
By: Travis (travis.downs.delete@this.gmail.com), August 3, 2018 7:58 pm
Room: Moderated Discussions
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.

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. 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 < Y < Z meaning that everything auto-vectorized by X is always auto-vectorized by Y and Z, and everything by Y 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.

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.

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.

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? 🍊