Ever noticed how paper and flyer based computer sales ads focus on the speed of the processor? The truth is, the speed is only a single factor in overall CPU performance! Discover how fast your CPU really is.
How Fast is Your CPU? A Note on GHz Based CPU Advertising
Paper and flyer based computer advertisements seem to focus only on the speed of the processor in GHz. One could almost call it sneaky sales oil, depending on how much focus there is on the speed of the CPU as a single factor of importance.
The truth is, the actual speed of the processor is only a single component of the overall CPU performance. What matters most is the actual and overall performance of the CPU. True enough, a given CPU may be run at various speeds, and a higher speed will generally result in a higher number of transactions per second (or millisecond).
However, if you compare two completely different processors and state ‘The 4GHz one must be so much faster then the 1GHz one’ you are bound to make a mistake comparing apples with oranges.
One important factor besides processor speed, for example, is the number of threads. You can picture a thread like tube. If you have a single threaded processor, it has a single tube through which to pass water.
If you have a double threaded CPU, it now has two tubes. It gets a little more complex when you include Hyper-Threading – which in simple words would be a “double pipe, shared to some extent”, unlike a “full standalone water pipe”.
The main two CPU brands are Intel and AMD. Modern Intel CPU’s often have for example 16 threads, though often this is 8 real threads and 8 HT (Hyper-threads). In other words, 16 pipes but in reality it’s like 8 times two pipes where the two pipes are shared to a given extent.
You can immediately see that a fast (in terms of GHz alone) CPU, with only a single thread may be slower then a slower (in terms of GHz alone) CPU, with many threads. Still, that is not all there is.
Next up is caching. A CPU has multiple levels of caching. Often these are called L1, L2, L3 etc. (level 1, level 2, level 3, etc.) caches. One can think of these like buckets that fill up, and overfill. The L1 cache is ultra fast and closest to the core.
If the required information does not fit into L1, L2 is used (which may be larger but slower). If L2 is full, L3 is used, and (if your CPU only has 3 cache levels) when L3 is full, data is moved to main memory which is generally much slower then Lx caches.
Again one can immediately see that a fast (in terms of GHz alone) CPU, with a small L1 cache may be slower then a slower (in terms of GHz alone) CPU, with a large L1 cache. Still, that is not all there is.
Bus / channel width is another consideration. The bus is a mechanism by which the CPU communicates with devices and main memory. Think about it like a highway with multiple lanes: a highway with 64 lanes will move traffic much faster then a highway with only 16 lanes. While the real world is yet to create is a highway with 64 lanes, your computer may have already have one!
Finally, one can have multiple physical CPU’s in one machine, or in other words “multiple actual processors on the mainboard”. Whereas the term multi-core (multiple cores) may be used in this context, it is somewhat misleading. A CPU can have 2 cores baked into one silicon chip, using only a single CPU socket on the mainboard, or there could be two cores in two physical silicon chips, taking up two CPU slots on a dual CPU slot mainboard.
Using a dual slot CPU mainboard will tend towards the CPU processing power of your workstation. It will as good as always never be a real ‘double performance’, as various other interaction matters come into play. There is potential for separate memory channels, shared memory channels, different ways to connect with devices and other system components etc. all contributing to the actual performance of a dual (or more) CPU system.
All this shows us a great need to have a better way to evaluate CPU performance, both before clicking that ‘Buy Now’ button, as well as afterwards – ensuring that your CPU performance is where you expect it to be. A benchmark if you will, and preferably one which will not be affected too much by environment and setup differences.
With knowledge comes responsibility; it would be a good idea to avoid returning a CPU to the manufacturer or vendor only because it performs a little less then a published number. Slight manufacturing and ground material differences may make for a slightly faster or slower version of the same CPU.
Think about it like buying apples at the super market; not every apple is the perfect Granny Smith you saw on the TV ad. And no matter how advanced the technology or manufacturing processes, after all, a CPU is made from the materials of this earth.
Let’s explore how fast our CPU really is.
A Reliable Benchmark
What if there was a list on which you could quickly lookup a given processor brand and model. and which would provide you with a simple number benchmark for almost every CPU there is in the world today? Such a list exists. Not only that, over 1 million CPU’s were benchmarked, and for a small $29 single user license fee you can buy their performance test software to test your own PC.
I have personally never found it necessary to buy their performance testing solution: when researching what CPU to use for a build, I can simply lookup the performance of each CPU being considered and compare the ratings (the ‘CPU Mark’ rating, more on this later) with each other.
And, to evaluate a given CPU in any workstation or server solution, I can again simply search for that particular brand and model number and get the same CPU Mark rating to evaluate against others. Still, if I ever wanted to actually benchmark a machine, it would be their performance testing solution I would go for and purchase.
After a little while one also gets a ‘feel’ for what numbers are fast CPU’s (generally 7000 and upwards), and what are slow CPU’s (3-4k range and lower). Fast is a little arbitrary here and I should define it better: I consider fast CPU’s to be CPU’s where one will not notice any slow down from the machine when doing many tasks at once.
That ‘wait for the computer’ syndrome often seen especially on slow laptops with slow HDD’s (mechanical, spinning hard disk drives). As a side note, such slow machines often benefit most from a HDD to SDD (solid state drive) storage upgrade.
For a modern fast workstation, you will want to look at least at a 8000 CPU Mark. And higher for servers. Server based CPU’s are also benchmarked and on the same list. Without further ado, here is the list, in full, on the CPU Benchmark website:
Eager to Find Your CPU?
I would be too. If you are using a Linux based workstations, you can simply find out what your CPU brand and model is by executing the following at your terminal / shell command prompt (a shortcut for this is normally available by typing ‘shell’ or ‘terminal’ in your desktop activities or similar bar):
cat /proc/cpuinfo | grep -Ei ‘model name’
model name : Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
model name : Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
model name : Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
Copy the model number (i9-9900K in this case), and press CTRL+f on the CPU Benchmark list page linked to above. Then press CTRL+v to insert the same, and your browser will immediately jump to a line with this text.
You will find the exact CPU close to this line, though you will need to do a little more matching: the search has found ‘Intel Core i9-9900KS @ 4.00GHz’ which does not match (notice the extra ‘S’ and the different GHz speed). Press “V” (down to next occurrence) or “>” (forward to next occurrence) on your browser search toolbar to find the next match for ‘i9-9900K’.
The next match shown is ‘Intel Core i9-9900KF @ 3.60GHz’. Almost, but not exactly the same (notice the additional ‘F’). One more ‘next’ click with bring us to the right CPU:
At times one needs to carefully watch the letter specifiers in the model name, as well as ensuring the speed in GHz is matched. Note that the output shown in `/proc/cpuinfo` (from experience, it’s a bit hard to remember when you need it, so take a minute here to memorize the exact filename and location), shows you the default model speed the CPU reports, not the actual current speed.
To see the actual speed, you can install inxi (sudo apt install inxi for Ubuntu/Mint or sudo yum install inxi for RedHat/Fedora) and execute inxi -C (CPU info):
Topology: 8-Core model: Intel Core i9-9900K bits: 64 type: MT MCP
L2 cache: 16.0 MiB
Speed: 4700 MHz min/max: 800/5000 MHz Core speeds (MHz): 1: 4700 2: 4700
3: 4700 4: 4700 5: 4700 6: 4700 7: 4700 8: 4700 9: 4700 10: 4700 11: 4700
12: 4700 13: 4700 14: 4700 15: 4700 16: 4700
Note how the 16 threads run at 4.7GHz (4700). Note also how you can see the minimum and maximum supported speeds (0.8GHz to 5GHz). Finally, of interest, note the amount of cores vs threads, note how there are 8 cores, yet 16 threads.
This is an Intel CPU with HT (HyperThreading) and thus has 16 “water pipes”, coming back to our earlier discussion, but they are 2-by-2 shared and somewhat limited across 8 cores. Another easy way to see how many threads a CPU has can be done by:
cat /proc/cpuinfo | grep -Ei ‘model name’ | wc -l
And we can also check how many core’s (all under one physical chip) are on our PC:
cat /proc/cpuinfo | grep ‘core id’ | sort -u
core id : 0
core id : 1
core id : 2
core id : 3
core id : 4
core id : 5
core id : 6
core id : 7
The sort -u only lists unique entries. There are (before uniquely sorting them) 16 entries in total, but 2-by-2 they will list the same core – 16 threads, 8 cores, HT 2-by-2. And finally we can even see how many physical CPU chips there are installed and active:
$ cat /proc/cpuinfo | grep ‘physical id’ | sort -u
physical id : 0
If this would have been a dual CPU based system, two lines (second one with physical id ‘1’) would have been present!
Other Performance Factors & Alternative Measurements
As we have seen, many factors affect the speed of a CPU. If we think a little larger now, we can also see how many other surrounding factors may affect the overall speed of our system. For example, Memory Speed (DDR3 vs DDR4), virtualization overhead for remote virtualized servers, network bandwidth and a myriad of other factors. Whilst they do not directly affect the capability or ultimate benchmark of a CPU, they all directly affect the overall performance of a CPU.
Thus, keep in mind, when maximizing CPU performance, your CPU may be able to run much faster then for example your memory, disk, network etc. Think about it like installing a Ferrari Engine in a Jeep car. The car may drive (if you have a handy mechanic!), but never use the real performance of the engine as the rest of the car is designed for another purpose.
Besides https://www.cpubenchmark.net/cpu_list.php, there is also https://cpu.userbenchmark.com/ which is another great website to explore before buying a new CPU. Additionally, both websites also offer other benchmarks (GPU, Drive, RAM) which may come in handy in further configuring other performance factors of your new machine!
Before buying that next CPU, review it’s performance! Before committing to a dedicated server for your business, review it’s performance… It is an easy 2-minute step to take and it will often save you a good amount of money (note the last two columns of the CPU list, which list the ‘CPU Value’ (higher is better) and the ‘Price’ per CPU), and doing so will also regularly optimize the performance of your new workstation or server.
The higher the ‘CPU Mark’ (sometimes also called CPU-B), the faster the CPU, all related things (i.e. bus bandwidth, L1-L2-L3-Lx cache, number of threads and cores, etc.) considered.