• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

The Multi Core War

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

Dolk

I once overclocked an Intel
Joined
Mar 3, 2008
I've been writing an article for the better part of this month. I think I'm on to something but somewhere deep in me something is telling me I am missing something.

Anyway I need your opinions to help me on this; here are my thoughts so far.

For about 3 years now we Computer Enthusiasts have seen the CPU market change from the GHz war to the Multi Core war. AMD was the first to set this in motion with the Athlon X2 on the 939 Socket Mobos. Intel shortly took charge after their disastrous Pentium D Duo. (If you don't remember that CPU don't worry, it was only around for about 3 months. It was just awful)

In our current era, we have the normal CPU at 4 cores. But now in 2010 we are going to see the norm change to 6 cores. My thoughts on this change is that as time comes, we will see more and more cores on a CPU; weather they are imaginary or not (i.e. Hyperthreading). But this will only give us a short time before the performance increase of X cores will give us negative results. That is to say, as cores increase they will increase performance until X number of cores is achieved on one die, after that number we will see a decrease in performance.

Why is that? I believe it has to do with the software developed by programmers. Sure we can say a program is multi-core capable, but will it truly use 24 cores? Can there be a single game out there that uses 12 cores to its advantage so that you can watch an HD movie, and render a 1080i movie all at once? Who's to say we can ever achieve that. Who's to say that we can use all cores to its advantage. So far the only software I can think of that and will continue to grow is benchmarking and Server applications.

The normal user doesn't need 6 cores available. At least Intel and AMD do provide the normal user to 1-3 cores. Because that is all they need. Or is it?

As time goes, we will see OSes be more demanding like usual and we will see more applications demand more out of the CPU. So this requires more cores right? What about a faster CPU?

As to simplify everything down, here is my thesis of the above: As we move more and more into the Multi-Core war, we will soon hit a wall. And that wall will bring about the GHz war once again.

Thoughts? Comments? Suggestions? All are welcome.
 
The era of scalar processing and the conventional CPU are coming to a close. The rise of vector processing and the GPU are on the rise.

Why? Performance : Watt

Electricity prices and non-linear gains in conventional CPU scalar architectures can't compete with GPU type architectures in terms of how much performance you get for every watt of electricity.

The CPU element will get smaller and smaller while the GPU element gets bigger and bigger until there is a paradigm shift in how we make processors.

The only advantage CPU's have right now is far superior interconnects and interconnect bandwidth and software support. That will soon change.
 
Well thats in about 5 years we will see this change, that is if things go right. But for the near future, My thoughts are what I have stated above.
 
Well thats in about 5 years we will see this change, that is if things go right. But for the near future, My thoughts are what I have stated above.

5 years?

The change is happening now.

AMD / ATI - Their entire strategy for the next couple years is getting the GPU onto the CPU die. Fusion / APU

Intel - Sandy bridge - Encorporating Vector extension sets onto the CPU + GPU on the die.

IBM - Cell - 2 scalar processors being accelerated by vector co-processors.

ARM - Every new processor has more vector processing power for multimedia.

Nvidia - Cuda making CPU code work on GPU's with performance : watt gains in the 10-100x realm.


If anything, the only role of the CPU now is to keep the GPU going.
 
5 years?



If anything, the only role of the CPU now is to keep the GPU going.

I think it will only be used for background tasks atm and servers.. The old server my work used to have had to finnaly go on clouds and with a cpu and gpu working in sync it would most likely cut costs 80%
 
5 years for it to be fully utilized. I know that these kind of cpus are coming out, but they will be no where near what they are capable of until the future.
 
Wouldnt the software 'wall' of multi threading and using the cores be more pliable or easier to break through even than say the Ghz barrier? With the Ghz barrier comes larger power packages, a tangent from CPU's current direction. its easier to put more cores on a shrinking die than to up the Ghz... yes/no?

This wall was here when we went from single to dual and now you can see many more apps compared to even 2 years ago, be able to use 2 or more cores. In two years time, we will see some apps use all 6, or heck software written to scale ifinitely to the number of avilable cores... is that possible?

Just thinking out loud....
 
Your fine Earth, thats what I want. I love creating discussions like this.

Yes its true that a higher clocked CPU creates more power per performance, so I could be wrong in my assumption.

So than is the only way of going up, is not to go backwards, but leap to APU?
 
Wouldnt the software 'wall' of multi threading and using the cores be more pliable or easier to break through even than say the Ghz barrier? With the Ghz barrier comes larger power packages, a tangent from CPU's current direction. its easier to put more cores on a shrinking die than to up the Ghz... yes/no?

This wall was here when we went from single to dual and now you can see many more apps compared to even 2 years ago, be able to use 2 or more cores. In two years time, we will see some apps use all 6, or heck software written to scale ifinitely to the number of avilable cores... is that possible?

Just thinking out loud....
Just as physics imposes limits on building CPUs, mathematics imposes limits on writing algorithms.

There do exist trivially parallizable problems such as graphics rendering. However, few real-world problems can be so easily broken apart: programmers tend to run into data dependency problems. Compilers can relieve this to a small extent (they can find typically find instruction-level dependencies) and languages to a larger extent (functional languages make dependencies across function calls explicit). Still, the algorithm being implemented ultimately determines just how much parallelization is possible, and Amdahl's Law puts limits on just how fast the program will be able to run.

JigPu
 
So here is my new consensus of this topic. In our current state, cpus will continue to increase with cores, but soon we will change to CPU + GPUs.
 
:thup:

But I think it would be better to discuss it in terms of scalar vs. vector processing.

From Wikipedia :

Vector Processing - A vector processor, or array processor, is a CPU design wherein the instruction set includes operations that can perform mathematical operations on multiple data elements simultaneously.

Scalar Processing - This is in contrast to a scalar processor, which handles one element at a time using multiple instructions. The vast majority of CPUs are scalar (or close to it).

The "core" term is too general with all the architectures coming out these days.

Thanks for starting this thread Dolk, I enjoyed posting here. Didn't mean to sound snotty :(

We have yet to see a "core" that was good at both vector and scalar processing. I wonder if that is possible?

-> Intel has said that Sandy Bridge will have new instructions called Advanced Vector Extensions (AVX).[12] These instructions are an advanced form of SSE. The data path is widened from 128 bits to 256 bits, the two-operand instruction limit is increased to four operands, and advanced data rearrangement functions are included. AVX is suited for floating-point-intensive applications.[13] Features of AVX include mask loads, data permutes, increased register efficiency and use of parallel loads, as well as smaller code size. The improvements of AVX will allow it to deliver up to double the peak FLOPS compared to before. Sandy Bridge will also have a new extensible VEX opcode prefix.[14]

That talks about allowing a scalar type "core" to be much better at vector type work. AMD will also supposedly support that instruction set.
 
Last edited:
Just as physics imposes limits on building CPUs, mathematics imposes limits on writing algorithms.

There do exist trivially parallizable problems such as graphics rendering. However, few real-world problems can be so easily broken apart: programmers tend to run into data dependency problems. Compilers can relieve this to a small extent (they can find typically find instruction-level dependencies) and languages to a larger extent (functional languages make dependencies across function calls explicit). Still, the algorithm being implemented ultimately determines just how much parallelization is possible, and Amdahl's Law puts limits on just how fast the program will be able to run.

JigPu
I have to admit I read this post several times and likely still dont get it completely... :cry: :p

With that in mind......excuse my ignorance..... but wouldnt that still leave the software side a bit more tangible of a 'wall' to break through vs the market driving down power consumption and the Ghz war? :shrug:
 
Ghz is still relevant in determining the effectiveness of a manufacturing process. Higher GHz means that you can get better chips without much defect in them at a certain rating. For instance if you look at 65nm vs 45nm phenom 2 we can see that the introduction of a new manufacturing process helped push the architecture to another level bringing up the clock rates substantially over the predecessor. To the more informed end user Ghz doesn't translate into a source of determining a chips performance in comparisons to its rivals however. It is just a number. As of now, when comparing intel to AMD we can see that AMD needs roughly +1 ghz to match intel in most benchmarks that are cpu intensive. Hence, Ghz will always matter on a manufacturing level but to end users it will remain insignificant for these reasons.

Adding more cores/threads/shaders/modules is always going to be something that will be everlasting. It is simply the best way to double up on transistor count. Dense environment will need this to do immense operations.

In the not so distant future we will see CPU and GPU semifused. At first being modules for power efficiency but later truly fused into a single new architecture (APU) which will handle both operations and then they will go again to doubling up its own transistor count with adding more of the same hardware and getting the ghz up.

Things will remain the same for a long time. The main focus of the industry is to get efficient chips out there for handhelds small form factors etc. These will be system on a chip designs. For enthusiast, we will still have independent high performance cpus based on core count and GPUs based on shaders. Each one will need to have revised manufacturing process to keep the ghz up to par with eachother on a competitive level.
 
ill try to find the link ..... a university worked on a proccessor that was like 2x more performance per ghz then standard cpus + it could handle tons of things at once..



I changed my mind though ... in 5 years or so it will be gpus+ cpus coming togthor which I think the intels line is going to be doing that next year. Which may or may not mean inorder to get a gpu you need a new cpu.
 
And the next evolution of scalar processing will be quantum computation. Where a single step problem will be able to be solved quantum mechanically with exponential speed ups.

A cool example would be if you had 100 phone numbers and were trying to find the right one. A quantum chip with enough qubits would be able to get you the right one in one step, as opposed to having to dial 100 of them in parallel or one at a time.
 
Well technically speaking we have to consider the impact of the general market. The market pushes the industry to excepting new standards. Quantum computing will not find its way into a general desktop because codes will have to be built on a different array and every single part of the computer would have to be adjusted to deal with the immense computational output of a single quantum processor. Also, manufacturing techniques, instruments and material would need to be develop or harvested and tested in order to safely make a quantum processor a viable solution for everyday use.

What will probably happen is that some advance facilities will want to experiment with Quantum processors and designate them for AI or other physics or bio chemical problems.

Nothing that the average desktop user will care about.

Now back to the market segment. The general consumer wants to have smaller devices that are basically all in one PC in a Handheld. That is what I think most consumers want.

This will be the main focus for the entire chip producing industry in the years to come.

As for the desktop, AMD and Intel still want to produce the better performing chip. They want to have an architecture that can be sustainable and cater to the needs of the consumer but also offer some growth in scalability and parallelism that quantum computers can offer.

The multicore chips are a step toward giving the general public a piece of what the future holds. Quantum bits can do tons of operations at the same time. What AMD and intel is attempting to do is improve scalability and parallelism over a multiple amount of cores to give a lesser affect of what a Quantum processor can do. (Nothing close but close enough that the general public is happy and it is regulated.)

As you dissect a CPU into its parts we end up seeing somethings that are being changed gradually but not all together. What is happening is that they are letting the industry catch up before they go on to produce the next step so that coders can understand and learn how to work with the little by little changes they are incorporating.

Lets look at hyperthreading. Hyperthreading makes an intel core into 2 virtual cores so it can perform two processes at once. The cons of this is that the program must be coded in a way for hyperthreading the be advantageous and the percent gained from virtual cores is not scalable like it would be with 2 regular cores. This is because it counts on the coder programmer to utilize the thread and there are bottlenecks.

There are many advantages to having multi threaded cores from a manufacturing stand point. For instance a single or dual core that is much easier to produce and have astoundingly fast ghz rating can be cut into threads that deliver slightly slower but fast enough performance to outclass even an outdated quad core.

I think next year when the dual core i5 with hyperthreading hit the market we will see that AMD will be somewhat stuck when intel hyperthreaded dual cores perform on par with a quad core amd just cause they can hit higher ghz rating.

Working with threads is one way intel can develop very fast parallel operations and keep efficiency good for the small form factor market like businesses that need 100s of computers just for word processing and general non intensive graphical use etc.

Multithreading will be something that will continue to progress on future platforms as long as the coders can deal with the challenge of utilizing it. As of now it is less important to the majority of the industry and even intel says that in some case hyperthreading can have a negative affect on some programs and to disable it.

The multicore is something that the industry will lean toward as it is the easiest way to keep developing for a market that wants new things every year with keeping last years stuff still compatible. And also keeping moores law in process.

There are many levels we have to look at when dealing with cores. Cores can be hyperthreaded put together to form more cores and soon with technical advances in the near future they will probably be able to stack them on eachother. Multichip stacking.

The general industry will probably go the the multithreaded with chip stacking route to increase scalability and parallelism. It is a controlled environment and silicon still has a long way to go before it becomes totally useless. It is also easier to work with what you already have than to create something new and make the industry accept it.

If you look at the embedded market you can see that we have chips that can do 4 threads per core and 100 core chips. We have arm chips that are super efficient and programmable. Theses are all desired but for there own industrial or basic market.

We have also take a look at cache. Cache itself needs to be evolved. There are mesh cache designs, hierarchies etc. All of these advances are still on silicon and we cant touch them for desktop yet.

Instructions are being advance also. Slowly giving the programmers a different way to solve problems and make things much easier.

In the future there will be more markets open to us. It is basically up to AMD and Intel to keep support up for each of the markets.

The APU chips will most likely be for a lowend user. The multicore segment for highend users. SOC designs for handhelds etc. Just more markets and different chips to accompany those markets. Core wars is something that AMD and intel will be at for the time being but honestly it wont have a difference on the everyday user that just browse internet email play some games. The problem is that intel is just able to offer more for the money. AMD has to keep up or it will fall into a section where there processors are just obsolete for the price. AMD has to find away to keep offering chips in a margin that is competitive to intel. At this point and even in the future bulldozer architecture I don't see AMD on par to what intel will have. They will be good enough but intel will always be able to offer more for the performance.

Recent news states that AMD is focusing its attention on the GPU market for the greater half of next year. Then they will try to compete with offering 6 cores and possibly 12 cores in MCM format later on just to say they are on par with intel in the core wars. But right now I think AMD decided to sit at the back of the bus and let intel do all the driving. The basically trying to defeat the last years tech from intel in some sense. This is probably a good idea as sooner or later they will end up having a best tech for the price just cause the industry cant deal with the fast pace of intel.
 
Just as physics imposes limits on building CPUs, mathematics imposes limits on writing algorithms.

There do exist trivially parallizable problems such as graphics rendering. However, few real-world problems can be so easily broken apart: programmers tend to run into data dependency problems. Compilers can relieve this to a small extent (they can find typically find instruction-level dependencies) and languages to a larger extent (functional languages make dependencies across function calls explicit). Still, the algorithm being implemented ultimately determines just how much parallelization is possible, and Amdahl's Law puts limits on just how fast the program will be able to run.

JigPu


Every single post in this thread has made me dumber. Except for this.
Thanks for saving my braincells.
For people who don't understand it at least go look at the pretty wikipedia graph.
 
Back