Announcement

Collapse
No announcement yet.

AMD Ryzen CPU Core Scaling Performance

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by cj.wijtmans View Post

    i need real world examples with code, assembly and performance tests. Not ideological jibberjabber.
    It -is- ideological arguement. If you don't want that then you will be sadly disappointed because that's exactly what it is.

    Anyway, google search is my friend, it is your friend too.
    http://gamedevs.org/uploads/introduc...ted-design.pdf < This has an example written in object oriented format and data oriented format, and it isn't the only one.

    EDIT: Here is another good link.
    When I started in the games industry back in 2000, one of my first major tasks (with the help of one other eager masochist) was to rewrite t...
    Last edited by duby229; 06 March 2017, 12:54 PM.

    Comment


    • Originally posted by duby229 View Post

      It -is- ideological arguement. If you don't want that then you will be sadly disappointed because that's exactly what it is.

      Anyway, google search is my friend, it is your friend too.
      http://gamedevs.org/uploads/introduc...ted-design.pdf < This has an example written in object oriented format and data oriented format, and it isn't the only one.
      Am i missing something here? Was the object even on the stack? I will have to try this out myself since the lack of information is quiet disturbing even though i know what they are getting at.

      Comment


      • Originally posted by caligula View Post
        ....
        So now you're essentially just trying a straw man fallacy on me? Because you're literally just using the worst case scenarios for high frequency memory. When you go for high frequency memory you're obviously going for the best possible solution with the lowest CAS latency possible at that frequency. Memory manufacturers don't sell "Overclocked" memory just for shits n' giggles.

        Comment


        • It's hard to explain,I can only summarize what I've read. In procedural programming all that exists is the procedures you write. They can do whatever you write them to do, but emphasis is always on code. Likewise in object oriented programming all that exists is objects. They can be all sorts of things, but again emphasis is always on code. Where as with data oriented programming emphasis is always on data. What that means is you have to look at you data from the output and imagine what code could produce that output. The code then becomes subset of the data. You can make many threads and work on it in many different ways and the bottleneck is moved to cache coherency hardware on the CPU. That technology was mastered in the early 2000s with MESI and MOESI techniques.

          Comment


          • Originally posted by duby229 View Post
            It's hard to explain,I can only summarize what I've read. In procedural programming all that exists is the procedures you write. They can do whatever you write them to do, but emphasis is always on code. Likewise in object oriented programming all that exists is objects. They can be all sorts of things, but again emphasis is always on code. Where as with data oriented programming emphasis is always on data. What that means is you have to look at you data from the output and imagine what code could produce that output. The code then becomes subset of the data. You can make many threads and work on it in many different ways and the bottleneck is moved to cache coherency hardware on the CPU. That technology was mastered in the early 2000s with MESI and MOESI techniques.
            Oh how cute, it thinks it's people. Of all the things valid complaints people have about OOP, this is not one of them and quite the contrary OOP usually gets whined about for focusing "too much" on data design and systems modeling.

            Comment


            • Originally posted by caligula View Post

              You mean the same physical instance of the memory module, then sure. But if you study the modules available at the market, you can see that for

              DDR4-2133 the CAS latencies vary between 10-17,
              DDR4-3333 the CAS latencies vary between 16-17
              DDR4-4000 the CAS latencies vary between 18-19

              The other latencies behave in similar way.

              10 cycles @ 2133 MHz is 4,9 ns
              16 cycles @ 3333 MHz is 4,8 ns
              17 cycles @ 3333 MHz is 5,1 ns
              19 cycles @ 4000 MHz is 4,8 ns

              The price difference between DDR4-2133 CAS 10 and DDR4-4000 CAS 19 is $170 vs $210. Of course the gamers will overclock each module to its max. You only compare each module at max settings and gamers favor the low latency modules, some big data analyst might pick the higher bandwidth and 4 memory channels.
              how do you calculate those ns?

              Comment


              • Originally posted by Luke_Wolf View Post

                Oh how cute, it thinks it's people. Of all the things valid complaints people have about OOP, this is not one of them and quite the contrary OOP usually gets whined about for focusing "too much" on data design and systems modeling.
                aka, "The Indoctrinated".

                Comment


                • Originally posted by tomtomme View Post
                  how do you calculate those ns?
                  Just #cycles divided by frequency (times 1000 to get nS rather than uS). There is a typo in the first row, should be 4.69 nS not 4.9 nS.

                  Note though that IIRC DDR3/4 typically transfers 8 word bursts, one per clock, so the transfer rate will be faster even if the CAS latency is the same. From CAS assert to end of burst (ignoring CAS precharge for now) would be:

                  18 cycles @ 2133 is 8.43nS
                  24 cycles @ 3333 is 7.20nS
                  27 cycles @ 4000 is 6.75nS

                  For the most relevant comparison you might want to include CAS precharge time as well, and maybe a certain percentage of a RAS cycle as well since you can't do page-mode (CAS-only) bursts all the time. It depends though, if the cache line is the same size or smaller than the size of a burst then the precharge times might not be on the critical path much of the time.
                  Last edited by bridgman; 07 March 2017, 10:24 AM.
                  Test signature

                  Comment


                  • Originally posted by duby229 View Post
                    It's hard to explain,I can only summarize what I've read. In procedural programming all that exists is the procedures you write. They can do whatever you write them to do, but emphasis is always on code. Likewise in object oriented programming all that exists is objects. They can be all sorts of things, but again emphasis is always on code. Where as with data oriented programming emphasis is always on data. What that means is you have to look at you data from the output and imagine what code could produce that output. The code then becomes subset of the data. You can make many threads and work on it in many different ways and the bottleneck is moved to cache coherency hardware on the CPU. That technology was mastered in the early 2000s with MESI and MOESI techniques.
                    What I don't understand is how you and all the people you linked to got from "it matters how you organise your data" to "object oriented is bad, procedural is good". The example about how much the performance can be improved by "data oriented programming" just replaces a list of independent bots that actually do the same thing at the same time with a homogenous "army". That's a valid optimisation, but why would it be wrong to put the resulting vectors and the code manipulating them in a class? What part of OOP says "you must have an object for each bot"? And how come it doesn't say "you must have an object for each pixel that forms each bot"?

                    Comment


                    • Originally posted by pal666 View Post
                      strange conclusion, since new amd cpu is much stronger than new gpu relative to competition
                      Its not strange, just what I'm going to do. I currently have a Core I7 4930k @4.2 GHz running in my system and it does not really throttle me out on any games I play. So I don't feel the need to upgrade. My Radeon HD 7970 however does throttle me out on newer games, so I need a new GPU. I decided, that it will be the Vega release, when I upgrade and IF by any wonder my 4930k shall throttle then, I may consider Ryzen, but I highly doubt it. Does that sound more logical?

                      Comment

                      Working...
                      X