FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login

    Outsourcing new CPU scores for lobbies

    Scheduled Pinned Locked Moved General Discussion
    79 Posts 28 Posters 10.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      meatontable
      last edited by

      Looks like new CPU score is overcorrelated to the cache size. I have similar to Jip's CPU by performance (https://cpu.userbenchmark.com/Compare/Intel-Core-i7-9750H-vs-Intel-Core-i7-7700/m766364vs3887 ) but CPU scoring utulity is thinking that my CPU slower two times. I have checked around 1-15 online replays today (Dual gaps usually ) and never replay slow down to 0, sometimes to +1 . But I am kicked from lobby regularly with verdict bad CPU.

      1 Reply Last reply Reply Quote 1
      • JipJ Offline
        Jip
        last edited by

        I think we've got enough data to make to ratify some form of change. I'm not sure what yet, but please keep more data coming.

        A work of art is never finished, merely abandoned

        1 Reply Last reply Reply Quote 1
        • M Offline
          meatontable
          last edited by meatontable

          Hello,
          My test steps are :

          1. Install lua from https://github.com/rjpcomputing/luaforwindows/releases
          2. Use a short adoptation of the faf code from : https://pastebin.com/GUTBXF7a
            I've add GetSystemTimeSeconds() + move out string with yield
            and verify that code shows a strongly relation at my IMac 1492 and running time 1.5 sec (around)
            CPU intel-core-i7-4980hq 16 DDR3 RAM
            Windows machine has 1202 i7-7700

          I have a question how is time is calculated in the lobby ?![My CPU](CPUZ.png image url)

          1 Reply Last reply Reply Quote 0
          • M Offline
            meatontable
            last edited by

            Another one result (Sorry i have tested it on Linux box):

            model name : AMD FX(tm)-6350 Six-Core Processor
            serg@debianserver:~# lua CPUscore.lua
            test
            1295
            1295
            serg@debianserver:~#

            As I see 6 cores AMD CPU was produced in 2013 is a little slower that 4 cores Intel was produced 2017 ! Phenom has few running docker images and this activity is slowing it down !
            Lets imagine if we can use only one core :
            Intel i7-7770 time = 1202 * 4 = 4808
            Intel i7-4980hq = 14924 = 5968
            AMD Phenon 6350 time = 1295 * 6 = 7700
            After this I've used pages from
            https://cpu.userbenchmark.com/Compare/Intel-Core-i7-7700-vs-Intel-Core-i7-4960HQ/3887vsm9629
            https://cpu.userbenchmark.com/Compare/Intel-Core-i7-7700-vs-AMD-FX-6350-Six-Core/3887vsm713 and compared all my CPUs
            4960 is slower 20 % single core (no 4980 in list) = 4808
            1.2= 5889.6
            AMD Phenom is slower 65% single core = 4802*1.65 = 7933

            Looks Like new lua can use more that one core and it is not good for single core (2 cores) game.
            I'm proposing to multiply the current CPU score by CPU count and divide it by 2.

            GiebmasseG 1 Reply Last reply Reply Quote 0
            • UvesoU Offline
              Uveso
              last edited by

              @meatontable

              Using a benchmark list was my first attempt to compare the speed results.
              The same CPU in a different PC has different results.

              Just as example, the Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz tested with Prime:
              over 700 different results:
              https://www.mersenne.org/report_benchmarks/?exp_date=2016-01-01&64bit=1&exover=1&exbad=1&exv25=1&exv26=1&specific_cpu=4379147

              1 Reply Last reply Reply Quote 0
              • GiebmasseG Offline
                Giebmasse Team Lead @meatontable
                last edited by

                @meatontable said in Outsourcing new CPU scores for lobbies:

                I'm proposing to multiply the current CPU score by CPU count and divide it by 2.

                Wouldn't this skew results of CPU's with many cores even though they are high performance? Like new Ryzen chips, even when they have many cores their single thread performance is also excellent for supcom.

                1 Reply Last reply Reply Quote 0
                • M Offline
                  meatontable
                  last edited by

                  Ok . I would like to clarify. Supcom is really old game and it uses 2 cores only. In this case it is no sense to keep in mind how many cores are. Our application uses only 1-2 of them.
                  I definitely sure that I 'm saying nothing bad about new Ryzen chips.
                  In our CPUscore Ryzen 9 5900x (3.7HZ)12 cores bits Ryzen 7 5800x 8 cores(3.8GHZ) (I assume that Ryzen 9 has 1.5 twice better value ) but for SUPCom both CPU are near equal and Ryzen7 is better due to better Hz.
                  CPUscore should show the right information about the slow CPU for the game purpose.
                  I'm not happy that definitely slow CPU from 2013 year bits more better CPU from 2017 due to the count of cores....

                  GiebmasseG 1 Reply Last reply Reply Quote 0
                  • GiebmasseG Offline
                    Giebmasse Team Lead @meatontable
                    last edited by Giebmasse

                    @meatontable said in Outsourcing new CPU scores for lobbies:

                    I'm not happy that definitely slow CPU from 2013 year bits more better CPU from 2017 due to the count of cores....

                    I don't think you have the right picture of how the CPU test in-game is working. The test that is ran in-game is single threaded, don't know why you are thinking about core counts in this way. A slow older gen 6-core AMD CPU will show up as a slow CPU with the test as it should, it does not gain anything from having a larger core count when compared to e.g. a faster 2-4 core Intel CPU from the same era. You can't compare the CPU score ran manually in a newer lua version to the one used in-game.

                    Also in case it wasn't clear, lower is better in the FAF CPU test.

                    M 1 Reply Last reply Reply Quote 0
                    • M Offline
                      meatontable @Giebmasse
                      last edited by

                      @giebmasse said in Outsourcing new CPU scores for lobbies:

                      @meatontable said in Outsourcing new CPU scores for lobbies:

                      I'm not happy that definitely slow CPU from 2013 year bits more better CPU from 2017 due to the count of cores....

                      I don't think you have the right picture of how the CPU test in-game is working. The test that is ran in-game is single threaded, don't know why you are thinking about core counts in this way. A slow older gen 6-core AMD CPU will show up as a slow CPU with the test as it should, it does not gain anything from having a larger core count when compared to e.g. a faster 2-4 core Intel CPU from the same era. You can't compare the CPU score ran manually in a newer lua version to the one used in-game.

                      Also in case it wasn't clear, lower is better in the FAF CPU test.

                      I have take a function from https://github.com/FAForever/fa/blob/741febf45a165e257db972fc2104484a51dd799d/lua/ui/lobby/lobby.lua#L5228
                      I do nothing with this function except the adding time check before and after checking CPU score. Original FAF score function is related to the CPU's count but game is a single core application.

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        meatontable
                        last edited by

                        I'm proposing to do next ;

                        1. Inform about CPU and your current CPU score.
                        2. Run replay with max possible speed.
                          I hope you have 6 or 8 cores CPU.
                          I also replay the same game and we can compare the running time.
                          If CPU score is working correctly then CPUscore * running time in sec should be near to equal for everyone.
                        1 Reply Last reply Reply Quote 0
                        • Z Offline
                          ZOB
                          last edited by

                          except faf is not a single threaded software
                          pause a game and have a look in the task manager
                          you will see up to about 22 threads spread on up to 3 cores
                          the sim thread runs by itself on 1 core, usually maxed to 100%, this thread/core is the limiting factor
                          the other main threads such as rendering, networking and audio run on other cores

                          1 Reply Last reply Reply Quote 1
                          • M Offline
                            meatontable
                            last edited by

                            agree. I can not see Single core CPU at the market. At least 2 CPU + hypertheding and we have no problem with other parts. Only one process is a bottleneck. Ive noticed few times that some guys have better CPU score but are aking -1 -2 when I can support +2

                            1 Reply Last reply Reply Quote 0
                            • GiebmasseG Offline
                              Giebmasse Team Lead
                              last edited by Giebmasse

                              Again, if I'd disable 4 of my cores I'd get the same CPU score result (4 vs 8 cores).
                              Yes, the game itself is not purely single threaded, but single thread performance is the most vital measurement we can do for CPU's as it is most often one thread that is the bottleneck. (If anyone is interested some info about supcom and threads can be found here: http://www.slideshare.net/guest40fc7cd/threading-successes-02-supreme-commander)

                              So I simply don't understand what you are after with the core count in this case. The score is not perfect and doesn't 100% compare with actual game performance, but that is a given as it is a very simple synthetic test.

                              About a performance test replay, I believe Marlo worked on a "standardized" replay that could be used for this, does anyone know if it got finished?

                              M JipJ 2 Replies Last reply Reply Quote 0
                              • M Offline
                                meatontable @Giebmasse
                                last edited by

                                @giebmasse said in Outsourcing new CPU scores for lobbies:

                                About a performance test replay, I believe Marlo worked on a "standardized" replay that could be used for this, does anyone know if it got finished?

                                Agree. The replay test is a best. Also I have disable hypertheading and my CPU score is better for few points. Totally disapointed .

                                1 Reply Last reply Reply Quote 0
                                • JipJ Offline
                                  Jip @Giebmasse
                                  last edited by

                                  @Giebmasse it did - but the 3721 patch broke it 🙂 , we're working on it.

                                  A work of art is never finished, merely abandoned

                                  1 Reply Last reply Reply Quote 0
                                  • VIPV Offline
                                    VIP
                                    last edited by

                                    5900x
                                    B550 Aorus Master
                                    32gb 3600 CL16
                                    CPU score is 91/96

                                    1 Reply Last reply Reply Quote 0
                                    • M Offline
                                      meatontable
                                      last edited by meatontable

                                      hello,
                                      I 've bought new DDR4 RAM (3200). This is max value supported by my motherboard.
                                      Of course CPU support 2400 only . Executing ZLO test I have got a little better value , but it is look more as fluctuation not real changes . 18min 5 sec
                                      But the installing new memory droped my CPU score again. The score is 292 now. (was 270 using RAM 2133) and 141 before last changes.

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        meatontable
                                        last edited by meatontable

                                        I'm sorry . I have no executed the test after memory upgrade. Time of the replay is 16.42
                                        Looks like prroblem is here:

                                               --This instruction set should cover most LUA operators
                                                j = i + i   --Addition
                                                k = i * i   --Multiplication
                                                l = k / j   --Division
                                                m = j - i   --Subtraction
                                                j = i ^ 4   --Power
                                                l = -i      --Negation
                                                m = {'1234567890', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', true} --Create Table
                                                TableInsert(m, '1234567890')     --Insert Table Value
                                                k = i < j   --Less Than
                                                k = i == j  --Equality
                                                k = i <= j  --Less Than or Equal to
                                                k = not k
                                                n[tostring(i)] = m
                                        

                                        We have assumption that SupremeCommander has tha same count of the all operation. I'm suspecting that TableInsert is more rare operation then math operations. I've executed code from https://pastebin.com/GUTBXF7a (this is part of cpuscore) and would like to say that My PC spent most of the time on
                                        n[tostring(i)] = m (50% executing time) and
                                        TableInsert(m, '1234567890') --Insert Table Value ( around 40% of the time)
                                        Can we add some weight value and dont worry so much on the memory speed for CPUScore ?

                                        1 Reply Last reply Reply Quote 0
                                        • JipJ Offline
                                          Jip
                                          last edited by Jip

                                          Inserting a value into a table like that is a common operation however. All effects for example are stored like that (and it is precisely the reason why I'm optimizing them - to prevent these type of allocations as much as possible).

                                          edit: more on topic - we're looking into an alternative to the CPU benchmark by having an actual benchmark map that you can run. This will take time however.

                                          A work of art is never finished, merely abandoned

                                          1 Reply Last reply Reply Quote 1
                                          • M Offline
                                            meatontable
                                            last edited by

                                            After last changes my cpuscore is changed from 291 to 261 . Thank you for this.
                                            Possible I'm wrong but let imagine. Few guys are starting to play using different CPUs and system. If someone has a problem with cooling then the CPU of this player slows down a game at the middle. Of course, we can not detect this issue during the short 10-15 sec test.
                                            I can rewrite a original script for the showing times of each operations (13 or less (as I remember asm , + and - use a same time, and all compare operation are too)). If results from 20-30 guys are present it is possible to write a good forecast. (if we have forgoten a powersave function ). I'm looking a boring guy becouse I'm QA

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post