Outsourcing new CPU scores for lobbies

@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

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

How about...
We add a new Trueskill rating but instead of skill it tries to rate CPU of players and adjusts after every match!

For each game we figure out the slowest CPU (if we can do that?) and then we tell Trueskill that that player played and lost against all other players of the match in several 1v1s. Over time Trueskill should come up with a ranking of all player's CPUs ??? xD

@katharsas that's like using a spade to dig a tunnel under the atlantic. I like the novelty of the idea but you're probably not going to get a very good metric out of it 🙂

@katharsas said in Outsourcing new CPU scores for lobbies:

How about...
We add a new Trueskill rating but instead of skill it tries to rate CPU of players and adjusts after every match!

For each game we figure out the slowest CPU (if we can do that?) and then we tell Trueskill that that player played and lost against all other players of the match in several 1v1s. Over time Trueskill should come up with a ranking of all player's CPUs ??? xD

I have attempted this at the past - on the LUA side we can only retrieve what the current game speed is with no indication as to who causes that. With the benchmark map this doesn't matter - as only one person is in the game 🙂 .

A work of art is never finished, merely abandoned

Hm in this case the solution is really simple. We are minus one after each game with no delay and add after game with delay .
Example : we have 5 players : A , B, C, D, E . A has a slow comp pruduces -1 or -2. All gamers have default CPU score rate 100 .
First game : A B C . (game speed -1) = rates A 101 B 101 C 101
Second one : B C D (game speed 0 ) = rates b 100 C 100 D 99
3 : C D E (game min speed 0 ) = rates C 99 D 98 E 99
4. D E A (game speed -1 becouse we have A) = D 99 E 100 A 102
After some time (50 games for player) A will have CPU score around 150 .
Also we need a some saving system : Player with -1 can not pass 200 , with -2 = 300

I do not think such a system would work in practice as it takes too long to converge while at the same time the system is easy to manipulate. Even when that is not intended. As an example, if you often play 1v1 ladder and 4v4+ custom games then you gain CPU rating from ladder where as you can lose them from the custom games, evening out on 100 or whatever number is desired at that point in time.

Running a separate benchmark map that simulates the game is the best approach in my opinion. The benchmark map would run at full speed. We could for example take the real time (system time at end - system time at start) it took to run the benchmark as your score. We still need to dive into the details of this 🙂 - nothing is set in stone.

A work of art is never finished, merely abandoned

I have a 11 year old computer, rates a 240 on the old benchmark and I won't touch that button again.

I know on a full out survival map I'll be the lowest cpu but not by far, so I don't do survival with 12 players.

It's really not hard to do, just don't join games you will lag on.

I was just asking because there were already multiple people that noticed their ram was clocked lower than it could be. .

@brainstormer
"its evident I'm not the reason for the bottleneck."

Is it? You have 0.0 ping so it looks like you're hosting, or borked somehow? can the host be behind?

Obviously to himself he has a ping of 0ms. Also, this game is peer to peer and doesn't have hosts. In the screenshot you can see he is at +1 sim speed while others are -2 and -1, so he is not the bottleneck in that game.