Comparison of current PC bottlenecks?

Coldblackice

[H]ard|Gawd
Joined
Aug 14, 2010
Messages
1,156
Anyone know of a list, diagram, picture, etc. showing and comparing current bottlenecks (throughputs) of PC's and their various hardware/technologies?


-----

I know this could be done manually, tech by tech, and I've googled around and found per-part/tech bottleneck comparisons, but it'd be great if there was some kind of collective list or diagram somewhere, maybe even illustrated like an interactive infographic, comparing all of these in one place.


If not, maybe it'll be a side project I throw together sometime. It could even show upcoming upgrades for various parts/tech along with their estimated (future) bottleneck/throughputs.

Hell, maybe even an interactive design-your-own-system webapp, coloring individual parts/chipsets on a gradient scale (relative) of blue->red, with red being bottlenecked tech and/or weakest links in the chain. And double-hell, maybe while mouseover-ing a part, it'd show an estimated forecast on the current part's coming upgrades and evolutions, helping one decide whether to settle on the old tech or wait for the new.


But for free-time's sake, I'm hoping someone can point out any already-made sources instead :)
 
These things change everyday and something that is a bottleneck by todays standards might not be tomorrow, example, if AMD Mantle comes to fruition like they are stating, a current bottleneck would be an FX4100 compared to say a R9-290x, but with Mantle this could change with one click to the 290x being the bottleneck.

Do not forget nothing is perfect and even something as simple as a game like say BF3 where they did have a built in bottleneck or % of use tool to show possible bottlenecks on some parts of a given map it would be a happy 50-50 yet look to the sky or jump in a jet and this graph could spike to say "omg your gpu is trash you need a more powerful one" and 2 spots over it could say "sorry, its your cpu the performance problem"

Nothing is perfect, I think many overclaim what is a true bottleneck and what is not, instructions per clock, raw Mhz value, latencies etc I think there is simply to much to take into account without being unfairly and cryptically biased to sum these type of things up in one simple "this is the bottleneck" unless you compare very old vs very new, say a Pentium 4 1.2Ghz using a modern GPU that would certainly be a bottleneck :)
 
These things change everyday and something that is a bottleneck by todays standards might not be tomorrow, example, if AMD Mantle comes to fruition like they are stating, a current bottleneck would be an FX4100 compared to say a R9-290x, but with Mantle this could change with one click to the 290x being the bottleneck.

Do not forget nothing is perfect and even something as simple as a game like say BF3 where they did have a built in bottleneck or % of use tool to show possible bottlenecks on some parts of a given map it would be a happy 50-50 yet look to the sky or jump in a jet and this graph could spike to say "omg your gpu is trash you need a more powerful one" and 2 spots over it could say "sorry, its your cpu the performance problem"

Nothing is perfect, I think many overclaim what is a true bottleneck and what is not, instructions per clock, raw Mhz value, latencies etc I think there is simply to much to take into account without being unfairly and cryptically biased to sum these type of things up in one simple "this is the bottleneck" unless you compare very old vs very new, say a Pentium 4 1.2Ghz using a modern GPU that would certainly be a bottleneck :)

Great points, thanks.

I guess I was just looking at it from a throughput-only perspective, and also more in a general sense of overall system hardware (not specific to any software performances), like PCIe lanes, memory channels, SATA ports, USB, North/Southbridges, interconnects, etc.
 
Great points, thanks.

I guess I was just looking at it from a throughput-only perspective, and also more in a general sense of overall system hardware (not specific to any software performances), like PCIe lanes, memory channels, SATA ports, USB, North/Southbridges, interconnects, etc.
Yeah, that's getting way too technical for information of extremely limited use.
 
pci-e lanes AMD and Intel are realatively the same depending on which chipset you reference.
~40 lanes either way, pci-e 3.0 does not matter much at this point, except it seems a bit easier in Intels case for their very high end chipsets to provide enough lanes for SLI and such.

memory channels overall means very little for most consumers, its the total capacity that matters far more, the only way to truly test and see this, take the highest IPC quad channel capable Intel cpu and max out the memory on 2 of those channels, then test again by keeping the same total amount of memory but populate 4 channels, in the vast majority of cases, the gain will be there, but most people will have no true need of it. Quad channel and beyond does have a use for sure, but I think on desktop wise, it almost adds to cost for nothing IMHO based on what I have seen on this topic.

Sata ports and usb port totals, again depending on chipset AMD and Intel are quite similar, if anything AMD is a little more open in providing more of these "auxiliary" type things on even their low end chipsets where it seems Intel believes unless you are using a high end chip, you do not need em, so pay or don't get type mentality.

North and southbridge at this point is a chipset and chip in question, AMD and Intel both are rolling more of this into the actual cpu every generation, so, it matters more on the chipset in question as to what capabilities you will see, generally FM2+ for AMD APU, AM3+ for their FX and Phenom II lines or performance to enthusiast, x79 for Intel high end and enthusiast line, LGA1155/1156 for their performance and mainstream line. It really depends on your needs in question will tell what one should be looking at, for most folks APU/FX or LGA1155/1156 are ample where for ones that absolutely need the extra performance, maximum memory performance, and multi-gpu crunching then x79(6 core 12thread) come into their own.

Interconnects is part of the chipsets does not matter at all, you do not buy the interconnects, you buy the cpu and the cpu you buy will segregate the motherboard required, the motherboard required will provide any number of possible configurations of pci-e lanes, total memory, overclocking capacity etc.
 
Thanks.

So for example's sake, what's stopping a Windows 7 machine from booting up instantly (or near-instantly)? Let's say it's running the latest/beefiest Intel overclocked CPU, overclocked RAM, and RAIDed SSDs.

I'm guessing it'd be the drives? If one could keep improving drive speed/throughput, would that theoretically push the limit closer to an instant-boot?

(Not trying to make this happen, or anything. Just curious in theory)
 
well the boot sequence with current OS does not happen instantly there is still timers involved so am sure even with a very old machine one can "tweak" the os itself to reduce these timers but then all kinds of things can happen that may not be a good thing, so me from pressing power button till its loading into windows screen is ~20 secs, from windows screen to fully booted ~30 secs on average so under a minutes most times, I have a 60Gb OCZ Agility 3 as boot drive and a caviar black 640 partition and shortstroked as a junk drive both have their own paging files, and I have done what I can to optimize my install and such.

So yeh, even if you were to have the best money can offer for pure speed certain things will still take the time they do, by virtue of where software is. Good example just for thought, Xbox1 and PS4 both have the most modern components for a console with them if you give them an SSD some games drastically benefit in their loading speed, their menu navigation etc, where some things it actually is somewhat slower then just using the drive they come with.

For PC some games by far benefit from SSD as do some programs, where with other things it makes next to no difference, so I suppose if one is looking for pure performance and they have need of it, certain components say a top of the line Intel will matter, for most folks, AMD or Intel, mainstream or performance end makes next to no difference in a real world perspective as software by and large is the "bottleneck" not that hardware.

The throughput only matters so much, as the hardware is still relying on the software side of things, and the hardware still has its own limitations, i.e if you could have quad channel memory running at wicked tight timings at a very high rate of speed it would still be a factor slower then the average performance processor in use currently, and the average processor is still waiting on certain things from the hard drive no matter if its a slow drive or a blistering speed pci-e raid SSD, there is fundamental limitations cause there almost has to be in many cases, to prevent things from crashing as nothing is perfect.
 
well the boot sequence with current OS does not happen instantly there is still timers involved so am sure even with a very old machine one can "tweak" the os itself to reduce these timers but then all kinds of things can happen that may not be a good thing, so me from pressing power button till its loading into windows screen is ~20 secs, from windows screen to fully booted ~30 secs on average so under a minutes most times, I have a 60Gb OCZ Agility 3 as boot drive and a caviar black 640 partition and shortstroked as a junk drive both have their own paging files, and I have done what I can to optimize my install and such.

So yeh, even if you were to have the best money can offer for pure speed certain things will still take the time they do, by virtue of where software is. Good example just for thought, Xbox1 and PS4 both have the most modern components for a console with them if you give them an SSD some games drastically benefit in their loading speed, their menu navigation etc, where some things it actually is somewhat slower then just using the drive they come with.

For PC some games by far benefit from SSD as do some programs, where with other things it makes next to no difference, so I suppose if one is looking for pure performance and they have need of it, certain components say a top of the line Intel will matter, for most folks, AMD or Intel, mainstream or performance end makes next to no difference in a real world perspective as software by and large is the "bottleneck" not that hardware.

The throughput only matters so much, as the hardware is still relying on the software side of things, and the hardware still has its own limitations, i.e if you could have quad channel memory running at wicked tight timings at a very high rate of speed it would still be a factor slower then the average performance processor in use currently, and the average processor is still waiting on certain things from the hard drive no matter if its a slow drive or a blistering speed pci-e raid SSD, there is fundamental limitations cause there almost has to be in many cases, to prevent things from crashing as nothing is perfect.

Awesome post, thanks much. The whole "timers" aspect makes sense -- I wasn't even aware of those.

I'm just curious about this in a theoretical sense; I'm not looking to push my boot times faster (I rarely reboot as is, maybe a few times a year).

I've just been curious if, given current Windows OS programming, if one could push the performance of certain hardware higher and higher, would that theoretically allow for faster and faster boot times. Assuming a storage drive as fast as RAM (like a RAM disk), I wondered if the boot-speed would then come down to the CPU -- how fast can the CPU blaze through the checklist of Windows to-do items?

But the factor of timers makes sense -- static variables of time.
 
well as far as I understand it, speed is in this order, and its a magnitude or more of difference
cpu directly--cpu cache----ram------ssd/flash----------------harddrive------------------------------cd/dvd type drive------------------------------------------------A/B drive
you get my point, so at this point there is a hardware limit on speed at least till they get to optical interconnects and such and have a way to replace cache and other forms of memory with something many magnitudes faster there will always be this hardware limitation, and of course software has its own finite limits according to coding which has its own limits derived from the hardware that is feeding it.

I know they are talking and working on non sequential i.e random schedulers and such so if there is conflicts and such that happen the OS can in theory recover from and possibly not have the errors they currently do and this could very much free up this inherent speed issue. Least the way they were talking about it(universities, IBM and so forth) is the way current OS are, is they are more or less sequential in nature relying on an a-b-c-d type coding in that if a happens it may be parallel in outcome so if a happens it can lead to b or to c etc but if a does not happen as it needs to then errors and usually stalls/crashes.

anyways what they are wanting to do is make it more "random" more like human thinking(as in some stuff that needs to run does run when it needs to but the majority of stuff is random just like out thinking habits sort of speak) then machine action in that a needs to happen but it may not have to be in a specific sequence so it could make things drastically more efficient if the coding is sophisticated enough to take advantage of it in that errors do not matter as much as any number of lines of code can be running at the same time and a stall or error would not mean as much.

anyways from what I read on this, an extremely fast rate of speed is a great thing to have if there is enough error correction that can take place as it happens which it will but when you are talking a dramatic increase in speed for performance reasons, you are also talking at least at this point a dramatic increase in possible errors/stalls/crashes as the code in question is never completely bug-free and if you do not schedule enough time in the pipe sort of speak for processes to complete and such well.

Anyways I am sure they can make say a game insta load and there are many that seem like they are but there is thousands if not millions of lines of code that runs to make it all happen, something like Linux or the older OS were insta on and for that matter command prompt is a great example, its instant BUT its also "clean" as in nothing fancy is loaded to do what we are used to or want to be doing, would be neat to have a basic windows type thing and then when you want to watch a movie or whatever it initializes the gpu and such so there would be far less running processes to hog performance but this would also mean things that already take time to happen would take longer.

Word wall, sorry this stuff interests me.
 
Fascinating stuff! Thanks for sharing. I wasn't aware of that PC-world push toward "randomn" processing. Seems like it'd be a rather daunting process to write (from an architectural programming perspective)!

I guess I've been looking at this conceptually, seeing the CPU as a strict variable of "time", like the time variable of our lives here on Earth. I wondered if a faster CPU would be like changing the rate of "time", so if time suddenly runs at 1.5x, we could all be hustling and bustling around at a much faster pace.

Of course, in a real-life sense, we'd run up against problems and limitations with the disparity between our own mental processing power and the new time-speed required to process action and life events. However, with computers, I've thought that such wouldn't matter, because it'd still be running through a "linear" list of code (so to speak), not having to face "randomness" (so to speak), and so shouldn't such merely equate to something like faster and faster boot-up?

So that, theoretically, if I could keep pulling faster and faster CPU's out of my pocket and plugging them into my motherboard -- would that equate with faster and faster boot times, essentially accelerating the time-variable in the PC world, letting it push faster and faster through its linear checklist of lines of code (at least, until running up against hard-coded time/wait variables).

Very interesting stuff, thanks for sharing.
 
And I think that is just it, a good chunk of stuff does benefit from pure speed but many of the parts are a magnitude slower then the cpu, and other times the cpu has a lot to crunch to make it happen, there are linear gains to be had from a faster and faster cpu but even now if you look at the past couple of generations, the gains are incremental, there are certain limits simple as that.

As you allude to if you think "time" which these processors and such use for their processing capabilities(Mhz = 1 million cycles per second) Time has certain limits in this context as even though your cpu is running at say 3Ghz or 3000million cycles per second(or something like this, my math is terrible sorry) it has to wait on the memory which it only talks to say every 4 ticks of the clock which also has to talk to the harddrive which might be every 12th tick of the clock etc, there are hardcoded limits so the cpu spends as little time idle as possible, but if you use any modern cpu and pay attention to its speeds many times they downclock/upclock hundreds if not thousands of times per minute to conserve energy.

Anyways, Because the cpu is waiting fro everything else to "catch up" then there are sometimes where some of the other components wait for instructions as well, everything is moving at a rapid speed, but current OS and such has ALOT to compute which takes time to happen, so speeding up this clock matters some, but accomplishing more in this same time frame will matter more.

The random concept, or for that matter multi-tasking and say Radeon concept with VLIW cannot bypass certain limitations at this point but what they can do is make sure everything is staying as active as possible, so even though said clock is 1Ghz it might be doing 5 actions at the same time. Random computing wise from what I read takes that a step further in that it no longer needs to be linear as in, say I am hungry and thirsty need to go to bathroom etc I may only be able to do one of these things at once but I might be able to get a start on all of them at the same time and have them all in thought at the same time.

Computers as it stands seem to prioritize(for various reasons) these decisions so it has to be linear in action to get from A to B where with us, we can do A before B or B before A and it still generally equals C though of course there is more efficient ways of getting the desired result.
Also to top it off, they are designed by us so just as they get different we learn to design them differently for efficiency, power etc. A very high clock speed has the unfortunate flaw of requiring a lot of power and making tons of heat in comparison to a more moderately clocked processing element, makes me wonder if they could take modern thinking on an old process that has been tuned to have a very high clock but decent power/temps?
Either way, speed is groovy accuracy is key. If you have to fill the gas tank every 10 miles it doesn't help to travel 1000Mph better to say go 100Mph but can go 10000miles before you need to fill. Time is always a factor hence why they have specific stop commands, halt, snooping, pre-eminence etc. day after day they are making these things very sophisticated in what they want them to do, but it takes awhile to make them intelligent in the design process turbo-core is one of those intelligent design concepts as is HSA take what you already do and find better more productive ways of doing it.
 
http://en.wikipedia.org/wiki/Instructions_per_second#Millions_of_instructions_per_second

The fastest ram which is among the fastest speeds most consumers use is of course ddr4 3200 class according to that list at 25.6GB/s which is still slower then the actual memory controllers most cpu we use right now can/would feed them.

Take a Core i7 2600k 128,300 MIPS so that is ~factor of 4x quicker in its computing then it can give out to memory via its controller, the controller is ~2-4x faster then the memory it is feeding, external pci express is 8000mb/s which is ~3x slower then main memory, so numerous slow downs in the chain and extremely large difference in the speed as well.

Hence why they really want to push optical connects and are working on it big time, then possibly all the other sides that actually talk to the main cpu can be a fraction of the actual speed instead of waiting so long. ms are faster then a blink of the eye, but for raw comparison 1ms vs 10ms is an extremely massive difference when you are talking this speed hell even 2 or 3 ms is still a near eternity :p. I liken it to explosives, all it takes is ~1ms for the ground to move and ~10ms for a significant amount yet the actual detonation is happening in nanoseconds or some 10,000,000 times faster.
 
Back
Top