CPU Tests: Simulation

Simulation and Science have a lot of overlap in the benchmarking world, however for this distinction we’re separating into two segments mostly based on the utility of the resulting data. The benchmarks that fall under Science have a distinct use for the data they output – in our Simulation section, these act more like synthetics but at some level are still trying to simulate a given environment.

DigiCortex v1.35: link

DigiCortex is a pet project for the visualization of neuron and synapse activity in the brain. The software comes with a variety of benchmark modes, and we take the small benchmark which runs a 32k neuron/1.8B synapse simulation, similar to a small slug.

The results on the output are given as a fraction of whether the system can simulate in real-time, so anything above a value of one is suitable for real-time work. The benchmark offers a 'no firing synapse' mode, which in essence detects DRAM and bus speed, however we take the firing mode which adds CPU work with every firing.

I reached out to the author of the software, who has added in several features to make the software conducive to benchmarking. The software comes with a series of batch files for testing, and we run the ‘small 64-bit nogui’ version with a modified command line to allow for ‘benchmark warmup’ and then perform the actual testing.

The software originally shipped with a benchmark that recorded the first few cycles and output a result. So while fast multi-threaded processors this made the benchmark last less than a few seconds, slow dual-core processors could be running for almost an hour. There is also the issue of DigiCortex starting with a base neuron/synapse map in ‘off mode’, giving a high result in the first few cycles as none of the nodes are currently active. We found that the performance settles down into a steady state after a while (when the model is actively in use), so we asked the author to allow for a ‘warm-up’ phase and for the benchmark to be the average over a second sample time.

For our test, we give the benchmark 20000 cycles to warm up and then take the data over the next 10000 cycles seconds for the test – on a modern processor this takes 30 seconds and 150 seconds respectively. This is then repeated a minimum of 10 times, with the first three results rejected.

We also have an additional flag on the software to make the benchmark exit when complete (which is not default behavior). The final results are output into a predefined file, which can be parsed for the result. The number of interest for us is the ability to simulate this system in real-time, and results are given as a factor of this: hardware that can simulate double real-time is given the value of 2.0, for example.

The final result is a table that looks like this:

(3-1) DigiCortex 1.35 (32k Neuron, 1.8B Synapse)

The variety of results show that DigiCortex loves cache and single thread frequency, is not too fond of victim caches, but still likes threads and DRAM bandwidth.

Dwarf Fortress 0.44.12: Link

Another long standing request for our benchmark suite has been Dwarf Fortress, a popular management/roguelike indie video game, first launched in 2006 and still being regularly updated today, aiming for a Steam launch sometime in the future.

Emulating the ASCII interfaces of old, this title is a rather complex beast, which can generate environments subject to millennia of rule, famous faces, peasants, and key historical figures and events. The further you get into the game, depending on the size of the world, the slower it becomes as it has to simulate more famous people, more world events, and the natural way that humanoid creatures take over an environment. Like some kind of virus.

For our test we’re using DFMark. DFMark is a benchmark built by vorsgren on the Bay12Forums that gives two different modes built on DFHack: world generation and embark. These tests can be configured, but range anywhere from 3 minutes to several hours. After analyzing the test, we ended up going for three different world generation sizes:

  • Small, a 65x65 world with 250 years, 10 civilizations and 4 megabeasts
  • Medium, a 127x127 world with 550 years, 10 civilizations and 4 megabeasts
  • Large, a 257x257 world with 550 years, 40 civilizations and 10 megabeasts

I looked into the embark mode, but came to the conclusion that due to the way people played embark, to get something close to a real world data would require several hours’ worth of embark tests. This would be functionally prohibitive to the bench suite, and so I decided to focus on world generation.

DFMark outputs the time to run any given test, so this is what we use for the output. We loop the small test for as many times possible in 10 minutes, the medium test for as many times in 30 minutes, and the large test for as many times in an hour.

(3-2a) Dwarf Fortress 0.44.12 World Gen 65x65, 250 Yr(3-2b) Dwarf Fortress 0.44.12 World Gen 129x129, 550 Yr(3-2c) Dwarf Fortress 0.44.12 World Gen 257x257, 550 Yr

Interestingly Intel's hardware likes Dwarf Fortress. It is primarily single threaded, and so a high IPC and a high frequency is what matters here.

Dolphin v5.0 Emulation: Link

Many emulators are often bound by single thread CPU performance, and general reports tended to suggest that Haswell provided a significant boost to emulator performance. This benchmark runs a Wii program that ray traces a complex 3D scene inside the Dolphin Wii emulator. Performance on this benchmark is a good proxy of the speed of Dolphin CPU emulation, which is an intensive single core task using most aspects of a CPU. Results are given in seconds, where the Wii itself scores 1051 seconds.

The Dolphin software has the ability to output a log, and we obtained a version of the benchmark from a Dolphin developer that outputs the display into that log file. The benchmark when finished will automatically try to close the Dolphin software (which is not normal behavior) and brings a pop-up on display to confirm, which our benchmark script can detects and remove. The log file is fairly verbose, so the benchmark script iterates through line-by-line looking for a regex match in line with the final time to complete.

The final result is a table that looks like this:

(3-3) Dolphin 5.0 Render Test

Dolphin does still have one flaw – about one in every 10 runs it will hang when the benchmark is complete and can only be removed by memory via a taskkill command or equivalent. I have not found a solution for this yet, and due to this issue Dolphin is one of the final tests in the benchmark run. If the issue occurs and I notice, I can close Dolphin and re-run the test by manually opening the benchmark in Dolphin to run again, and allow the script to pick up the final dialog box when done.

CPU Tests: Science CPU Tests: Rendering
Comments Locked

110 Comments

View All Comments

  • Sootie - Tuesday, July 21, 2020 - link

    Any chance of a crowd sourced version of the bench? People with unusual CPU's could run a cut down version of the bench with only software that does not require a license and heavily disclaimed that it was not an official run just to add a few more data points of rare devices. I have a whole museum of old servers I can run some tests on but it's not practical to send them elsewhere.

    I'm a big fan of all the work you have done and are doing on the bench though I use it constantly for work and home.
  • Tilmitt - Tuesday, July 21, 2020 - link

    Phenom II X6 and X4 would be cool to see if the "more cores make future proof" narrative actually holds up.
  • lmcd - Tuesday, July 21, 2020 - link

    X6 outperformed early Bulldozer 8 cores by a notable bit if that's of any interest.
  • loads2compute - Tuesday, July 21, 2020 - link

    Dear Ian,

    Wow! What a nice idea to test all these legacy processors on modern benchmarks. I think it is a great idea!

    But als wow, what an enormous effort you are taking on automating all that stuff, starting from scratch and using autohotkey as your main tool. It seems like going to an uninhabited island, starting civilization from scratch and taking a tin opener as your main tool.

    In my line of work (bioinformatics) we have to automate a load of consecutive tasks. Luckily there are frameworks for this, which make the work a lot easier.

    Luckily there is already a framework for automated testing and benchmarking which happens to work on Linux, Mac and Windows (and even BSD). It is called the phoronix test suite http://phoronix-test-suite.com/. It can be extended with modules, so you could integrate all your desired tests in there. There is even paid support available, but since they guy who runs this (Michael Larabel) is working on a fellow tech outlet (phoronix.com) I am sure you can work something out to your mutual benefit. No doubt he is interested in all these old processor benchmarks too!

    The phoronix test suite also comes with phoromatic, which according to the website : "allows the automatic scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface."

    So please do not start from scratch and do this yourself! Use this great open-source tool that is already available and consequently you will be able to get a lot more work done on the stuff that actually interests you! (I take it AHK scripting is not your hobby).
  • Ian Cutress - Tuesday, July 21, 2020 - link

    Scripts are already done :)
    The issue is that a lot of tests have a lot of different entry points; with AHK I can customizer for each. I've been using it for 5 years now, so coding isn't an issue any more.

    Fwiw, I speak with Michael on occasion. We go to the same industry events etc
  • eek2121 - Tuesday, July 21, 2020 - link

    Was procuring a new GPU really that hard? I am going to blame your owner on this one. If you were an independent website I honestly would have purchased a 2080ti and donated it to you. It honestly seems like not being independent is hurting you more than it is helping. Without going into specifics, I know of websites smaller than AT that can afford at least 3 good full time writers and a bunch of awesome hardware.

    I have toyed with the idea of starting an alternative site where all hardware is procured in the retail channel. I know what advertising rates are like and I know that using affiliates, sponsorships, and advertising more than cover the cost of a few models per generation. Maybe it’s time AT staff strike out on their own. Just a thought.

    Outside of that, I look forward to future endeavors.
  • Ian Cutress - Tuesday, July 21, 2020 - link

    Procuring a GPU is always difficult, as we don't have the bandwidth to test AIB cards any more.

    Fwiw AT only has 2/3 FT writers.
    If we were to spin back out, we'd need investors and a strategy.
  • Igor_Kavinski - Tuesday, July 21, 2020 - link

    Request: Core i7-7700K DDR3 benchmarks (There are Asus and Gigabyte mobos that allow DDR3 to be used) to compare with Core i7-7700K DDR4 benchmarks. Thanks!
  • Xex360 - Tuesday, July 21, 2020 - link

    Very fascinating.
  • dad_at - Tuesday, July 21, 2020 - link

    Pls include HEDT Sandy Bridge E: one of Core i7 3960X, 3970X, 3930K, etc. Once it was present in the CPU bench, but you removed it since 2017...

Log in

Don't have an account? Sign up now