Announcement

Collapse
No announcement yet.

Formula CPU mark, memory mark and disk mark

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

  • Richard (PassMark)
    replied
    Any other formula used for mobile devices? If so, how it is supposed to compare them?
    Only the CPU and Memory Tests has been standardize across platforms and the CPU Mark and Memory Mark can be compared directly with other PerformanceTests editions. The remaining tests (Disk, 2D and 3D) are not the same on the Mobile vs the Windows release of PerformanceTest and cannot be compared directly.

    Leave a comment:


  • Asen
    replied
    I applied this formula to Windows machine and everything worked out, but on Android devices is not:
    Click image for larger version

Name:	screen.png
Views:	297
Size:	95.1 KB
ID:	52839



    1 / (((1 / (3953 * 0.396566187)) + (1 / (19535 * 3.178718116)) + (1 / (23146 * 2.525195879)) + (1 / (13265 * 1.757085479)) + (1 / (16953 * 1.668158805)))/5) = 6672
    So, as you can see,

    6672 != 7700
    Any other formula used for mobile devices? If so, how it is supposed to compare them?

    Leave a comment:


  • Tim (PassMark)
    replied
    CPU_ENCRYPTION is MBytes / sec ( / 1048576), so using the value of 274.279038977543 you should see the same CPU mark.

    It looks like the Linux version is not displaying the results in the expected formats.

    CPU_mm: 143.85203527202719
    CPU_sse: 600.24699137061884
    CPU_fma: 0
    CPU_avx: 1206.7660770010648
    CPU_avx512: 0
    m_CPU_enc_SHA: 171444498.41289219
    m_CPU_enc_AES: 537332151.83488178
    m_CPU_enc_ECDSA: 154030602.47697806
    These are the scores for sub tests that are run, they are not required for calculating the score from the test results but are saved for reference.
    (For example the Encryption test has 3 sub-tests to test different types of encryption and hashing algorithms).
    Last edited by Tim (PassMark); 12-15-2021, 12:28 AM.

    Leave a comment:


  • Rogelio Montanana
    replied
    Hi:

    I've been caculating the CPU Mark and Memory Mark values from individual test results for Windows and Linux systems using the formulas published in this forum.

    For the Windows case I have been mostly successful, since I have been able to reproduce the values shown within a 0.1-0.2 % error margin, which may be due to the fact that values are reported without decimals and sometimes they have only two or three significant figures.

    But for the Linux case, in spite of having all the values with eight significant figures, for the CPU Mark the values I get are systematically 1-2 % over the reported values, and for the Memory mark my values are systematically below the reported values in all cases. It seems that I am missing something, but I don’t know what it is.

    For example, in one execution I get the the following output:

    Results:
    Results Complete: true
    NumTestProcesses: 1
    CPU_INTEGER_MATH: 3473.6986666666667
    CPU_FLOATINGPOINT_MATH: 1801.5623821969807
    CPU_PRIME: 11088582.155407717
    CPU_SORTING: 2372572.6501833266
    CPU_ENCRYPTION: 287602417.57491738
    CPU_COMPRESSION: 16487851.534536928
    CPU_SINGLETHREAD: 1516.0919716574317
    CPU_PHYSICS: 164.93171801707402
    CPU_MATRIX_MULT_SSE: 903.50653418584182
    CPU_mm: 143.85203527202719
    CPU_sse: 600.24699137061884
    CPU_fma: 0
    CPU_avx: 1206.7660770010648
    CPU_avx512: 0
    m_CPU_enc_SHA: 171444498.41289219
    m_CPU_enc_AES: 537332151.83488178
    m_CPU_enc_ECDSA: 154030602.47697806
    ME_ALLOC_S: 592.03581337674734
    ME_READ_S: 18783.400195312501
    ME_READ_L: 11171.9287109375
    ME_WRITE: 7835.724609375
    ME_LARGE: 778.16666666666663
    ME_LATENCY: 43.892771756731001
    ME_THREADED: 16525.2412109375
    SUMM_CPU: 1122.8392054406484
    SUMM_ME: 1057.6267754975174

    Now I apply the CPU Mark formula using the following values:

    CPU_INTEGER_MATH: 3473.698667
    CPU_FLOATINGPOINT_MATH: 1801.562382
    CPU_PRIME: 11.08858216
    CPU_SORTING: 2372.57265
    CPU_ENCRYPTION: 287.6024176
    CPU_COMPRESSION: 16487.85153
    CPU_SINGLETHREAD: 1516.091972
    CPU_PHYSICS: 164.931718
    CPU_MATRIX_MULT_SSE: 903.5065342

    (observe that the values in yellow have been modified from the original)

    With this I get CPU Mark 1143, which is 1.8 % higher than the SUMM_CPU value reported in the test (1123).

    For the Memory mark, using the previously listed values in the formula I get 950, which is 10 % lower than the SUMM_MEM value in the report (105.

    It seems that I am missing something. Maybe there is a different formula for the linux test?

    Also, I see in the list the variables:

    CPU_mm: 143.85203527202719
    CPU_sse: 600.24699137061884
    CPU_fma: 0
    CPU_avx: 1206.7660770010648
    CPU_avx512: 0
    m_CPU_enc_SHA: 171444498.41289219
    m_CPU_enc_AES: 537332151.83488178
    m_CPU_enc_ECDSA: 154030602.47697806

    which don’t appear in the windows test and are not used in the formula. Should they be also included somehow? What do they mean?

    Thanks,
    Rogelio.
    Hi:

    I've been caculating the CPU Mark and Memory Mark values from individual test results for Windows and Linux systems using the formulas published in this forum.

    For the Windows case I have been mostly successful, since I have been able to reproduce the values shown within a 0.1-0.2 % error margin, which may be due to the fact that values are reported without decimals and sometimes they have only two or three significant figures.

    But for the Linux case, in spite of having all the values with eight significant figures, for the CPU Mark the values I get are systematically 1-2 % over the reported values, and for the Memory mark my values are systematically below the reported values in all cases. It seems that I am missing something, but I don’t know what it is.

    For example, in one execution I get the the following output:

    Results:
    Results Complete: true
    NumTestProcesses: 1
    CPU_INTEGER_MATH: 3473.6986666666667
    CPU_FLOATINGPOINT_MATH: 1801.5623821969807
    CPU_PRIME: 11088582.155407717
    CPU_SORTING: 2372572.6501833266
    CPU_ENCRYPTION: 287602417.57491738
    CPU_COMPRESSION: 16487851.534536928
    CPU_SINGLETHREAD: 1516.0919716574317
    CPU_PHYSICS: 164.93171801707402
    CPU_MATRIX_MULT_SSE: 903.50653418584182
    CPU_mm: 143.85203527202719
    CPU_sse: 600.24699137061884
    CPU_fma: 0
    CPU_avx: 1206.7660770010648
    CPU_avx512: 0
    m_CPU_enc_SHA: 171444498.41289219
    m_CPU_enc_AES: 537332151.83488178
    m_CPU_enc_ECDSA: 154030602.47697806
    ME_ALLOC_S: 592.03581337674734
    ME_READ_S: 18783.400195312501
    ME_READ_L: 11171.9287109375
    ME_WRITE: 7835.724609375
    ME_LARGE: 778.16666666666663
    ME_LATENCY: 43.892771756731001
    ME_THREADED: 16525.2412109375
    SUMM_CPU: 1122.8392054406484
    SUMM_ME: 1057.6267754975174

    Now I apply the CPU Mark formula using the following values:

    CPU_INTEGER_MATH: 3473.698667
    CPU_FLOATINGPOINT_MATH: 1801.562382
    CPU_PRIME: 11.08858216
    CPU_SORTING: 2372.57265
    CPU_ENCRYPTION: 287.6024176
    CPU_COMPRESSION: 16487.85153

    CPU_SINGLETHREAD: 1516.091972
    CPU_PHYSICS: 164.931718
    CPU_MATRIX_MULT_SSE: 903.5065342

    (observe that the values in bold have been scaled from the original)

    With this I get CPU Mark 1143, which is 1.8 % higher than the SUMM_CPU value reported in the test (1123).

    For the Memory mark, using the previously listed values in the formula I get 950, which is 10 % lower than the SUMM_MEM value in the report (105.

    It seems that I am missing something. Maybe there is a different formula for the linux test?

    Also, I see in the list the variables:

    CPU_mm: 143.85203527202719
    CPU_sse: 600.24699137061884
    CPU_fma: 0
    CPU_avx: 1206.7660770010648
    CPU_avx512: 0
    m_CPU_enc_SHA: 171444498.41289219
    m_CPU_enc_AES: 537332151.83488178
    m_CPU_enc_ECDSA: 154030602.47697806

    which don’t appear in the windows test and are not used in the formula. Should they be also included somehow? What do they mean?

    Thanks,
    Rogelio.

    Leave a comment:


  • vincent911001
    replied
    Hi Tim,

    Thanks a lot for your help. Appreciate your effort in showing me the calculation in such a clear way.

    Vincent

    Leave a comment:


  • Tim (PassMark)
    replied
    Sorry, there was a disconnect between the original formula values and the ones used internally I believe due to an attempt to make the forum formula slightly more readable, I have adjusted the value in the post. For example to calculate your CPU mark it is;

    X W 1 / (W * X)
    CPU - Integer Math 50246 0.149001983 0.000133569
    CPU - Floating Point Math 29233 0.271311984 0.000126083
    CPU - Prime Numbers 112.7 296.1871085 2.99578E-05
    CPU - Extended Instructions (SSE) 14660 0.758484696 8.9933E-05
    CPU - Compression 225767 0.034970332 0.00012666
    CPU - Encryption 14346 0.8766779 7.95113E-05
    CPU - Physics 793 17.81818182 7.07723E-05
    CPU - Sorting 24411 0.392310713 0.00010442
    CPU - Single Threaded 2605 4.908772082 7.82023E-05
    CPU Mark = 1 / AVERAGE( 1 / (W * X))) * 1.65 17697.33149
    Last edited by Tim (PassMark); 12-13-2021, 11:10 PM.

    Leave a comment:


  • vincent911001
    replied
    Hi Tim,

    Sorry for the messy table.
    Here is the clearer one.
    W X W/X
    CPU - Integer Math 0.149001983 50246 0.000002965449648
    CPU - Floating Point Math 0.271311984 29233 0.00000928101748
    CPU - Prime Numbers 296.1871085 112.7 2.628102116
    CPU - Extended Instructions (SSE) 0.758484696 14660 0.00005173838308
    CPU - Compression 0.034970332 225767 0.0000001548956756
    CPU - Encryption 0.8766779 14346 0.00006110957061
    CPU - Physics 17.81818182 793 0.02246933395
    CPU - Sorting 0.392310713 24411 0.00001607106276
    CPU - Single Threaded 4.908772082 2605 0.001884365483
    SUM 321.39682 2.652597136

    Vincent

    Leave a comment:


  • vincent911001
    replied
    Hi Tim,

    Thanks for your clarification.

    The reason that I am asking that is because I couldn't get the CPU Mark value by substituting the values with the following formula:

    CPUMark = 17698(This is what I am getting from running the test)
    CPUMark = (1.791798549 * SUM(Wi)/SUM(Wi/Xi)) * 1.65
    W X W/X
    CPU - Integer Math 0.149001983 50246 0.000002965449648
    CPU - Floating Point Math 0.271311984 29233 0.00000928101748
    CPU - Prime Numbers 296.1871085 112.7 2.628102116
    CPU - Extended Instructions (SSE) 0.758484696 14660 0.00005173838308
    CPU - Compression 0.034970332 225767 0.0000001548956756
    CPU - Encryption 0.8766779 14346 0.00006110957061
    CPU - Physics 17.81818182 793 0.02246933395
    CPU - Sorting 0.392310713 24411 0.00001607106276
    CPU - Single Threaded 4.908772082 2605 0.001884365483
    SUM 321.39682 2.652597136
    SUM(Wi) = 321.39682
    SUM(Wi/Xi) = 2.652597136

    CPUMark = 358.2146999(This is what I get from manual calculation)

    Could you help on this?

    Thanks,
    Vincent

    Leave a comment:


  • Tim (PassMark)
    replied
    The cross platform mark is not part of the CPU mark as it a subset of the tests (a smaller version of the CPU mark).

    Leave a comment:


  • vincent911001
    replied
    Hi Tim,

    I am using the latest V10 for benchmarking and found that there is an addition of Cross-platform Mark in CPUMark.
    Can you provide the weightage for that?


    Thanks,
    Vincent Tan

    Leave a comment:


  • Tim (PassMark)
    replied
    For version 10 the updated numbers are;

    Passmark Rating = 1 / (((1 / (CPU Mark * 0.396566187)) + (1 / (2D Mark * 3.178718116)) + (1 / (3D Mark * 2.525195879)) + (1 / (Memory Mark * 1.757085479)) + (1 / (Disk Mark * 1.668158805)))/5)

    CPU Mark = 1 / AVERAGE ( test values ) * 1.65
    Overall CPU mark is scaled up to be closer to PT9 result

    1 / ( 0.149001983 * CPU Integer Math)
    1 / ( 0.271311984 * CPU - Floating Point Math)
    1 / ( 296.1871085 * CPU - Prime Numbers)
    1 / (0.758484696 * CPU - Extended Instructions (SSE))
    1 / (0.034970332 * CPU - Compression)
    1 / (0.8766779 * CPU - Encryption)
    1 / (17.81818182 * CPU - Physics)
    1 / (0.392310713 * CPU - Sorting)
    1 / (4.908772082 * CPU - Single Threaded)


    2D Graphics Mark = 1 / AVERAGE ( test values )

    1 / (60.25393099 * Graphics 2D - Simple Vectors)
    1 / (3.649649659 * Graphics 2D - Fonts and Text)
    1 / (15.78231555 * Graphics 2D - Windows Interface)
    1 / (0.463690633 * Graphics 2D - Image Filters)
    1 / (4.196513 * Graphics 2D - Image Rendering
    1 / (15.802781340 * Graphics 2D - Direct 2D)
    1 / (16.39344251 * Graphics 2D - PDF Rendering)
    1 / (13 * Graphics 2D - Direct 2D - SVG)

    3D Graphics Mark = 1 / AVERAGE (test values) * 2.35
    Overall 3D mark is scaled up be closer to PT9 result
    If no DX10 then 40% penalty is applied, if no DX11/DX12 a 20% penalty is applied

    1 / (28.77991307 * Graphics 3D - DirectX 9 Complex)
    1 / (44.43436155 * Graphics 3D - DirectX 10)
    1 / (24.36318087 * Graphics 3D - DirectX 11)
    1 / (95.96088498 * Graphics 3D - DirectX 12)
    1 / (1.093968291 * Graphics 3D - DirectCompute)

    Memory Mark = 1 / AVERAGE (test values)

    1 / (2.5 * Memory - Database Operations)
    1 / (0.077817619 * Memory - Read Cached)
    1 / (0.171576582 * Memory - Read Uncached)
    1 / (0.282054375 * Memory - Write)
    1 / (0.44326614 * Memory - Available RAM)
    1 / (48454.32714 * (1 / Memory - Latency))
    1 / (0.126149451 * Memory - Threaded)

    Disk Mark = Disk Mark * 14.2135
    Overall Disk Mark is scaled up to be closer to PT9
    Disk mark is a straight average unlike the inverse averages used for the other test

    Disk Mark = (Sequential Read + Sequential Write + IOPS 32KQD20 + IOPS 4KQD1) / 4
    Last edited by Tim (PassMark); 04-22-2021, 11:44 PM.

    Leave a comment:


  • Richard (PassMark)
    replied
    Per the help documentation:

    The "PassMark Rating" is a combination of the CPU, 2D, 3D, Memory and Disk Ratings, the bigger the number, the faster the computer. The exact formula for this calculation is as follows.

    1 / (((1 / (CPU Rating * 0.396566187)) + (1 / (2D Rating * 3.178718116)) + (1 / (3D Rating * 2.525195879)) + (1 / (Memory Rating * 1.757085479)) + (1 / (Disk Rating * 1.668158805)))/5)

    In this formula each rating is weighted then inverted, the average of these values is taken and then inverted again. The formula gives higher weighting to the CPU and disk tests and lower weighting to the 2D and memory tests. This is done as the CPU performance and disk performance are generally more important when it comes to how fast the computer feels to the general user. The score is also calculated in such a way that a single extremely high value cannot significantly improve the final score. Conversely, a single low score can drag the score down significantly using this formula. All components in a system must be performing well in order for the final score to be high.
    For your example, the PassMark Rating would be 4678.

    Code:
    Passmark Rating = 1 / (((1 / (10185.8 * 0.396566187)) + (1 / (812.1 * 3.178718116)) + (1 / (4411 * 2.525195879)) + (1 / (2546 * 1.757085479)) + (1 / (4968 * 1.668158805)))/5) = 4677.595655

    Leave a comment:


  • passmark@jbsmail.com
    replied
    Any chance you could share how the formula above would turn a set of scores into an overall rating? I've always wanted to understand better how each variable contributes to the whole and while I'm good with excel I'm not familiar with the weighted harmonic mean calculations you cite (and haven't been successful finding an explanation online).

    So for example I have a machine here with these scores:

    CPU: 10185.8
    2D: 812.1
    3D: 4411
    Memory: 2546
    Disk: 4968

    I'd love to make a spreadsheet that would show me how each of those turns into the overall score of 4678

    Thanks for any tips and thanks for the great software!!

    Leave a comment:


  • Tim (PassMark)
    replied
    For V9 here is the updated numbers;

    PassMark Rating = 1.136147806 * SUM(Wi) / SUM(Wi/Xi)
    Wi, Xi
    2.521647162015860, CPU Rating
    0.314592223502463, 2D Rating
    0.396008883238004, 3D Rating
    0.569124275370555, Memory Rating
    0.599463310688817, Disk Rating


    CPUMark = (1.791798549 * SUM(Wi)/SUM(Wi/Xi)) * 0.935
    Overall CPU mark is scaled down 6.5% to bring it closer in line to V8 results
    Wi, Xi
    1.61409490426413000, CPU - Integer Math
    0.78030297980205800, CPU - Floating Point Math
    0.00298791011878377, CPU - Prime Numbers
    0.00425539632371741, CPU - Extended Instructions (SSE)
    1.28673313314116000, CPU - Compression
    0.17464523002838700, CPU - Encryption
    0.06047953119557500, CPU - Physics
    0.80170208150336800, CPU - Sorting
    0.29768491953295500, CPU - Single Threaded


    2D Graphics Mark = 2.885893591 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.04557724359985280, Graphics 2D - Simple Vectors
    0.20274121794503000, Graphics 2D - Complex Vectors
    0.26521461537446100, Graphics 2D - Fonts and Text
    0.18918250000277200, Graphics 2D - Windows Interface
    0.93260256411875300, Graphics 2D - Image Filters
    0.75954294849425900, Graphics 2D - Image Rendering
    0.03073076923530790, Graphics 2D - Direct 2D


    3D Graphics Mark = 11.26078383 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.02841011904870032, Graphics 3D - DirectX 9 Complex
    0.01144654017856387, Graphics 3D - DirectX 10
    0.01906127232111015, Graphics 3D - DirectX 11
    0.00719999999942400, Graphics 3D - DirectX 12
    0.37790089285839027, Graphics 3D - DirectCompute


    Memory Mark = 0.215741845 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.03880159638350440, Memory - Database Operations
    12.85056023109620000, Memory - Read Cached
    5.82830120721253000, Memory - Read Uncached
    3.54541566674865000, Memory - Write
    2.25598102304859000, Memory - Available RAM
    0.00002063799167225, 1/Memory - Latency
    7.92710544574625000, Memory - Threaded


    These are Averages:
    Disk Mark = 10.84951297 * Average(Xi)
    Xi
    Disk - Sequential Read
    Disk - Sequential Write
    Disk - Random Seek + RW

    Leave a comment:


  • David (PassMark)
    replied
    For V8 of PerformanceTest the Formula for the PassMark rating, CPUMark and other mark values is (mostly) equivalent to Constant * Weighted Harmonic Mean:

    Here is a simplified version.

    PassMark Rating = 1.136147806 * SUM(Wi) / SUM(Wi/Xi)
    Wi, Xi
    2.521647162015860, CPU Rating
    0.314592223502463, 2D Rating
    0.396008883238004, 3D Rating
    0.569124275370555, Memory Rating
    0.599463310688817, Disk Rating


    CPUMark = 1.791798549 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    1.61409490426413000, CPU - Integer Math
    0.78030297980205800, CPU - Floating Point Math
    0.00298791011878377, CPU - Prime Numbers
    0.00425539632371741, CPU - Extended Instructions (SSE)
    1.28673313314116000, CPU - Compression
    0.17464523002838700, CPU - Encryption
    0.06047953119557500, CPU - Physics
    0.80170208150336800, CPU - Sorting
    0.29768491953295500, CPU - Single Threaded


    2D Graphics Mark = 2.885893591 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.04557724359985280, Graphics 2D - Simple Vectors
    0.20274121794503000, Graphics 2D - Complex Vectors
    0.26521461537446100, Graphics 2D - Fonts and Text
    0.18918250000277200, Graphics 2D - Windows Interface
    0.93260256411875300, Graphics 2D - Image Filters
    0.75954294849425900, Graphics 2D - Image Rendering
    0.03073076923530790, Graphics 2D - Direct 2D


    3D Graphics Mark = 9.712167917 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.06452845600728730, Graphics 3D - DirectX 9 Simple
    0.02817527844893020, Graphics 3D - DirectX 9 Complex
    0.00944282812657065, Graphics 3D - DirectX 10
    0.02299592705614300, Graphics 3D - DirectX 11
    0.38967562748451200, Graphics 3D - DirectCompute


    Memory Mark = 0.215741845 * SUM(Wi)/SUM(Wi/Xi)
    Wi, Xi
    0.03880159638350440, Memory - Database Operations
    12.85056023109620000, Memory - Read Cached
    5.82830120721253000, Memory - Read Uncached
    3.54541566674865000, Memory - Write
    2.25598102304859000, Memory - Available RAM
    0.00002063799167225, 1/Memory - Latency
    7.92710544574625000, Memory - Threaded


    These are Averages:
    Disk Mark = 10.84951297 * Average(Xi)
    Xi
    Disk - Sequential Read
    Disk - Sequential Write
    Disk - Random Seek + RW



    It isn't as straight forward as you might initially imagine however due to several factors.

    1. We wanted to keep some consistency with past releases.
    2. Not all tests can be run on all machines. Examples include not being able to run DirectX11 on XP machines. But we still wanted to be able to produce a benchmark number on XP machines, despite not being able to run all tests.
    3. Some tests can be run only in a degraded state on some machines. An example is not being able to run at full 1920x1080 screen resolution. Or not being able to turn on the desired level of anti-aliasing on old video cards. We penalize some results in cases like this.
    4. There is one result where smaller numbers are better (memory latency). So this required special handling.
    5. Some of the tests actually contain a bunch of sub-tests. Direct2D being an example. The combination of results from the sub-tests isn’t covered above.
    6. The formula above doesn’t cover the loading up (and scaling) of results from older versions of the software (e.g. V5, V6 & V7)
    7. Some tests are optional, like the CD test, depending on if you have CD drive and suitable media in the drive. But we wanted to allow a benchmark to be run on machines without a CD drive. So this needs to be handled.

    Leave a comment:

Working...
X