Outsourcing new CPU scores for lobbies

@giebmasse Oh yes, you are right. My sleepy mind was like, this numbers in cpu name are looking like the laptop SKU's so it must be a laptop.
It totally slipped my mind that the earlier I7 tended to have this kind on nomenclature compared to the current more streamlined line-up.

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.

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

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)

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.

@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

@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.

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....

@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.

@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.

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.

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

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

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?

@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 .

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

A work of art is never finished, merely abandoned

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

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.

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 ?

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