[Part 2] Measuring CPU Draw Call Performance

Discussion in 'CPUs and Overclocking' started by MajinCry, Feb 17, 2017.

  1. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    (Part 1)

    In the previous draw call benchmark, the settings I supplied were suboptimal; having the application split between the two different objects caused the application to eat up most of the CPU time. If only one object type is used, however, the driver has much more room to throw it's weight.

    To see this for yourself, set the benchmark to use the old values (3000 ships, 6000 rocks). If you enable instancing, you get a nice bump. But with 1 ship + 16000 rocks, however? My 965 BE went from 12fps to 180fps after enabling instancing. Process Explorer also shows the driver thread doing much more with the CPU, using the new settings.


    Now that's a driver test, if ever there was one. To clarify the steps you need to take:

    Download the demo: NVidia, MEGA mirror
    Ensure your driver settings for the program is as close to the following as possible:
    [​IMG]
    Drag the ship slider to 1
    Drag the rocks slider to 16000
    Set Instancing to disabled
    [​IMG]

    [​IMG]

    The next post will contain the results, as well as another fancy graph. Make sure to use the following format when reporting them:

    CPU:
    GPU:
    GPU Driver:
    OS:

    Ships:
    Rocks:
    Draw Calls:
    FPS:
     
    #1 MajinCry, Feb 17, 2017
    Last edited: Feb 18, 2017
  2. Loading...

    Similar Threads - [Part Measuring Draw Forum Date
    Part numbers of CPU's without the meltdown and spectre bugs? CPUs and Overclocking Jan 7, 2018
    Best Entry-level rig using "modern" parts? CPUs and Overclocking Nov 22, 2017
    More fun with G3258 and H81 OC (yeah, still have parts) CPUs and Overclocking Jun 26, 2017
    Someone reverse engineered the intel backdoor. (or at least part of it) CPUs and Overclocking May 15, 2017
    [Part 1] Measuring CPU Draw Call Performance CPUs and Overclocking Feb 2, 2017

  3. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    [​IMG]

    [​IMG]

    MajinCry
    CPU: Phenom II x4 965 BE @ 3.4ghz
    GPU: AMD 7850 2GB
    GPU Driver: 16.12.2
    OS: Windows 7 64bit

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 12.10 - 12.28


    Vodka
    CPU: i5 2500k @ 4.5GHz
    GPU: Sapphire R9 290 Tri-X @ 1075/1375
    GPU Driver: 17.2.1 configured as in OP
    OS: Windows 10 Pro x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 19.00-19.14

    --

    CPU: i5 2500k @ 5.1GHz
    GPU: Sapphire R9 290 Tri-X @ 1075/1375
    GPU Driver: 17.2.1 configured as in OP
    OS: Windows 10 Pro x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 22.10-22.27


    FrostigerFinger
    CPU: i7 860 @ 3.60GHz
    GPU: AMD Radeon HD 7950 @ 1040/1575
    GPU driver: 16.12.1 (settings same as OP)
    OS: Windows 7 64 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: ~17.15


    dogen1
    CPU: G3258 @ 4.30GHz(oc'd a bit more)
    GPU: GTX 950 Stock
    GPU driver: 378.49
    OS: Windows 7 64 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: 30.5-31


    Mr Evil
    CPU: FX 8370E
    GPU: Fury
    GPU Driver: 17.1.2
    OS: Win 7 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 11.13


    SPBHM
    CPU: i5 2310 @ 2.9ghz/3.1ghz (turbo seems to set the clock to mostly 3.1GHz while running it)
    GPU: HD 5850
    GPU Driver: 15.11.1
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls:16022
    FPS: 13.37


    Lebdnil
    CPU: Core i5-6600 (3630MHz)
    GPU: HD530 integrated
    GPU Driver: Intel 4590 (default settings)
    OS: Win10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 14.77


    Brunnis
    CPU: Core i7-6700K (stock)
    GPU: GeForce GTX 1080
    GPU Driver: 376.53
    OS: Windows 10 64-bit

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 25.60


    FrostigerFinger
    CPU: Intel Core 2 Duo E6700 (Conroe) @ 2.66GHz
    GPU: Nvidia Geforce 8800 GTS 320MB
    GPU driver: 342.01
    OS: Windows 7 32 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: 13.32


    Monk5217
    CPU: i7 4771
    GPU: XFX R9 Nano
    GPU Driver: 17.1.2 with settings specified in OP
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 17.78-18.67


    TheStilt
    CPU: Ryzen R7 1800X
    GPU: R9 Nano
    GPU Driver: ?
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 12.80


    TheStilt
    CPU: Ryzen R7 1800X
    GPU: R9 Nano
    GPU Driver: ?
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 14.69


    behrouz
    CPU: Phenom II X4 925 @ 2.8ghz
    GPU: ATI Radeon HD 3300
    GPU Driver : 8.850.0.0 , 4/19/2011
    OS: Windows 7 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 9.98-10.01


    roybotnik
    CPU: Ryzen 1800x @ 4.0ghz (SMT OFF)
    GPU: Radeon 290 (stock)
    GPU Driver: 17.2.1
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 16.53-17.13


    tomatone
    CPU: G3258 @ 4.4GHz
    GPU: R9 270
    GPU Driver: 16.11.5
    OS: Win 7 64bit

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 28.02-28.35


    nevbie
    CPU: C2D E8400 E0 @ 3GHz
    GPU: ATI Radeon HD 4850 512MB
    GPU Driver: (Catalyst 13.9)
    OS: Win 7 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 11.84-11.91 window focused, 9.59-9.61 not focused, 12.12-12.15 fullscreen


    tbob18
    CPU: Sandybridge E5-1660 @ 4.6Ghz
    GPU: AMD R9 290
    GPU Driver: ?
    OS: Win 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 20.06


    CatMerc
    CPU: Core i5 6600K @ 4.2GHz
    GPU: R9 390 @ 1025MHz
    GPU Driver: 17.2.1
    OS: Win 10 64bit

    Ships: 1
    Rocks: 16k
    Draw Calls: 16,022
    FPS: 23~ FPS[/URL]


    Magic Hate Ball
    CPU: Ryzen 1800X @ 4.0ghz, No SMT, RAM @ 3200Mhz
    GPU: Sapphire Fury Tri-X OC @ 1050Mhz
    GPU driver: 17.3.1

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: ~17.72
     
    #2 MajinCry, Feb 17, 2017
    Last edited: Mar 18, 2017
  4. .vodka

    .vodka Senior member

    Joined:
    Dec 5, 2014
    Messages:
    962
    Likes Received:
    904
    .vodka
    CPU: i5 2500k @ 4.5GHz
    GPU: Sapphire R9 290 Tri-X @ 1075/1375
    GPU Driver: 17.2.1 configured as in OP
    OS: Windows 10 Pro x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 19.00-19.14

    [​IMG]

    --------------------------------------

    .vodka
    CPU: i5 2500k @ 5.1GHz
    GPU: Sapphire R9 290 Tri-X @ 1075/1375
    GPU Driver: 17.2.1 configured as in OP
    OS: Windows 10 Pro x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 22.10-22.27

    [​IMG]

    ------------------

    Nice data you're gathering. I'd love to see the same as you, if Zen finally fixes AMD's deficit in this area for the past ten years since Conroe landed in 2006.
     
    MajinCry and Drazick like this.
  5. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    CPU: i7 860 @ 3.60GHz
    GPU: AMD Radeon HD 7950 @ 1040/1575
    GPU driver: 16.12.1 (settings same as OP)
    OS: Windows 7 64 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: ~17.15

    btw. maybe you should add to the OP that instancing must be disabled.
     
    MajinCry likes this.
  6. dogen1

    dogen1 Senior member

    Joined:
    Oct 14, 2014
    Messages:
    714
    Likes Received:
    37
    CPU: G3258 @ 4.30GHz(oc'd a bit more)
    GPU: GTX 950 Stock
    GPU driver: 378.49
    OS: Windows 7 64 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: 30.5-31
     
    MajinCry likes this.
  7. Mr Evil

    Mr Evil Senior member

    Joined:
    Jul 24, 2015
    Messages:
    263
    Likes Received:
    88
    CPU: FX 8370E
    GPU: Fury
    GPU Driver: 17.1.2
    OS: Win 7 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 11.13

    Unlike the previous test, the FPS remains constant this time. CPU use is about 12% for the main thread, and 10% for the driver.

    If I turn instancing on, CPU use drops to 8%/0.5%, and the following numbers change:
    Draw Calls: 23
    FPS: 222.52-226.46
     
    MajinCry likes this.
  8. TheELF

    TheELF Platinum Member

    Joined:
    Dec 22, 2012
    Messages:
    2,295
    Likes Received:
    131
    Can you check and tell us at what frequency the core runs? (How high it turboes)
     
  9. Mr Evil

    Mr Evil Senior member

    Joined:
    Jul 24, 2015
    Messages:
    263
    Likes Received:
    88
    CPU-Z says 3.6GHz. I know it's supposed to have a turbo frequency of 4.3GHz, but I've never seen it actually do that.
     
  10. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    Can you check with HWInfo64 instead? cpu-z doesn't show the frequency of all cores, hwinfo does.
     
  11. Mr Evil

    Mr Evil Senior member

    Joined:
    Jul 24, 2015
    Messages:
    263
    Likes Received:
    88
    HWInfo64 mostly shows 3.6GHz, with an occasional blip up to 4.3GHz for just a second.

    There's nothing running in the background (CPU use without running the draw call test is <1%), nor is the CPU hot (only up to 49°C while testing).
     
  12. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    we're talking WHILE the benchmark is running in the background right?
     
  13. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    Yeah man, here's hoping. Supposing Zen finally gets AMD over that hurdle, I'll be splurging for a new platform upgrade. Otherwise, I'll probably just nab an i5 2500k off Ebay.


    Good catch. Updated the OP.


    Also updated the results posts. Gimme a few minutes to get the graph up.
     
  14. Mr Evil

    Mr Evil Senior member

    Joined:
    Jul 24, 2015
    Messages:
    263
    Likes Received:
    88
    Of course; I'm not that daft!
     
  15. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    Haha, meaning no offense :D
     
  16. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    Graph's up.

    And lo' and behold, we see AMD's draw call deficit! That i7 860 is 144% faster than my 965 when it comes to processing these "ideal" draw calls. Fairly certain that if the rocks were each given a unique material and texture (so more draw call work), the gap would be even more pronounced.

    Though, I am curious as to why the 8370E scored quite a bit better than my 965 BE. Wonder if it's something driver side, that does a bit of magic with Fury's sexy specs.
     
  17. SPBHM

    SPBHM Diamond Member

    Joined:
    Sep 12, 2012
    Messages:
    4,480
    Likes Received:
    136
    CPU: i5 2310 (stock, turbo seems to set the clock to mostly 3.1GHz while running it)
    GPU: HD 5850
    GPU Driver: 15.11.1
    OS: Windows 10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls:16022
    FPS: 13.37

    comparing this result with the 2500K 4.5GHz one, it looks around the same increase in clock and FPS, so I think having an older driver/GPU from AMD is not having a significant effect on the result.
     
  18. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    'Twas one of the things mentioned by the ENB dev; modern intel CPUs scale almost linearly with clocks:draw calls.

    If we take the i5 2500k scores, each 100mhz = 0.51fps. Bumping up your score to a theoretical 4.5ghz:

    4.5ghz - 3.1ghz = 1,400 mhz
    14 * 0.51 = 7.14fps
    13.37 + 7.14 = 20.61fps

    Close enough.
     
  19. Lebdnil

    Lebdnil Junior Member

    Joined:
    Jul 13, 2016
    Messages:
    11
    Likes Received:
    8
    [​IMG]

    CPU: Core i5-6600 (3630MHz)
    GPU: HD530 integrated
    GPU Driver: Intel 4590 (default settings)
    OS: Win10 x64

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 14.77

    Byes
     
  20. Brunnis

    Brunnis Senior member

    Joined:
    Nov 15, 2004
    Messages:
    445
    Likes Received:
    10
    CPU: Core i7-6700K (stock)
    GPU: GeForce GTX 1080
    GPU Driver: 376.53
    OS: Windows 10 64-bit

    Ships: 1
    Rocks: 16000
    Draw Calls: 16022
    FPS: 25.60
     
  21. .vodka

    .vodka Senior member

    Joined:
    Dec 5, 2014
    Messages:
    962
    Likes Received:
    904
    This is what I don't understand.

    How in hell is that 4.3GHz G3258 beating a stock 6700k? GPU power doesn't matter here since we're CPU limited and the scene is simple even with so much stuff going on. I mean, single threaded DX9 running on modern hardware

    dogen's rig was also posting way too high numbers in the first part.

    What is going on? Some driver setting that makes such a difference? I haven't used an nV card since the GF 7 series back in 2006 so I have no idea about the current driver settings and what could be happening here.
     
    #20 .vodka, Feb 18, 2017
    Last edited: Feb 18, 2017
    Drazick likes this.
  22. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    Here's another ancient one for comparison:

    CPU: Intel Core 2 Duo E6700 (Conroe) @ 2.66GHz
    GPU: Nvidia Geforce 8800 GTS 320MB
    GPU driver: 342.01
    OS: Windows 7 32 bit

    Ships: 1
    Rocks: 16000
    Draw calls: 16022
    FPS: 13.32


    Surprisingly good if you ask me!
     
  23. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    In fact this result is way too good, the old Conroe seems to wipe the floor with Lynnfield and even Sandybridge, when accounting for the clock rate difference!

    What is going on.
     
  24. MajinCry

    MajinCry Platinum Member

    Joined:
    Jul 28, 2015
    Messages:
    2,299
    Likes Received:
    475
    It could be driver differences. I thought AMD's D3D9 driver was superior to NVidia's, since AMD has a hardware scheduler.

    Might also be that since it's an NVidia demo, it's built around NVidia's driver behaviour. Answer to that is to not compare across the two brands. Compare AMD against AMD, and NVidia against NVidia. Still, it's pretty crazy.

    The demo comes with source code, so the programming types could take a look and see if there's anything wonky going on.


    Edit: Found the answer. Remembered talking about this ages ago.

    http://enbseries.enbdev.com/forum/viewtopic.php?f=17&t=4869#p69741
    What he means by this, is that if you are ONLY just rendering the exact same object, with no variation in draw calls (i.e, 16000 of the same rock object), and no other driver work (shaders?), NVidia wins hands down.

    Keep in mind that scenario never occurs in games, due to lighting, shaders, shadows, materials, morphs, etc.
     
    #23 MajinCry, Feb 18, 2017
    Last edited: Feb 18, 2017
    .vodka likes this.
  25. FrostigerFinger

    Joined:
    Feb 17, 2017
    Messages:
    30
    Likes Received:
    2
    This would also explain the godly performance of the Pentium paired with a 950.
     
  26. .vodka

    .vodka Senior member

    Joined:
    Dec 5, 2014
    Messages:
    962
    Likes Received:
    904
    It doesn't, 6700k is 4GHz base clock, 4.2GHz single threaded turbo and is using a GTX1080, so it's nvidia vs nvidia.

    Assuming this is a single threaded test, 100Mhz advantage for the G3258 doesn't even cover the IPC gap between full Skylake 6700k and cut down (3MB L3$) Haswell G3258.

    How come the G3258 rig is posting 30FPS while the 6700k rig is at the 25 FPS mark? They're using different drivers, and it's Windows 7 vs Windows 10, but still.
     
    Drazick likes this.