Author Topic: If gpus are so much faster than cpus, why do we still have them?  (Read 1599 times)

For example this article here:
http://en.wikipedia.org/wiki/CUDA

Apparently graphics cards can do anything, not just graphics, orders of magnitude faster than any cpu.

Why can't we have GPu powered everything?

Just a random guess, but maybe so the GPU doesn't have to do every single thing that the CPU currently does?

Just a random guess, but maybe so the GPU doesn't have to do every single thing that the CPU currently does?
Its often hundreds of times faster, why would that be a problem?

Its often hundreds of times faster, why would that be a problem?
Well, just because its faster doesn't mean it can handle everything.

http://superuser.com/questions/308771/why-are-we-still-using-cpus-instead-of-gpus

GPU is still a relatively new concept. GPUs were initially used for rendering graphics only; as technology advanced, the large number of cores in GPUs relative to CPUs was exploited by developing computational capabilities for GPUs so that they can process many parallel streams of data simultaneously, no matter what that data may be. While GPUs can have hundreds or even thousands of stream processors, they each run slower than a CPU core and have fewer features (even if they are Turing complete and can be programmed to run any program a CPU can run). Features missing from GPUs include interrupts and virtual memory, which are required to implement a modern operating system.

In other words, CPUs and GPUs have significantly different architectures that make them better suited to different tasks. A GPU can handle large amounts of data in many streams, performing relatively simple operations on them, but is ill-suited to heavy or complex processing on a single or few streams of data. A CPU is much faster on a per-core basis (in terms of instructions per second) and can perform complex operations on a single or few streams of data more easily, but cannot efficiently handle many streams simultaneously.

As a result, GPUs are not suited to handle tasks that do not significantly benefit from or cannot be parallelized, including many common consumer applications such as word processors. Furthermore, GPUs use a fundamentally different architecture; one would have to program an application specifically for a GPU for it to work, and significantly different techniques are required to program GPUs. These different techniques include new programming languages, modifications to existing languages, and new programming paradigms that are better suited to expressing a computation as a parallel operation to be performed by many stream processors. For more information on the techniques needed to program GPUs, see the Wikipedia articles on stream processing and parallel computing.

Modern GPUs are capable of performing vector operations and floating-point arithmetic, with the latest cards capable of manipulating double-precision floating-point numbers. Frameworks such as CUDA and OpenCL enable programs to be written for GPUs, and the nature of GPUs make them most suited to highly parallelizable operations, such as in scientific computing, where a series of specialized GPU compute cards can be a viable replacement for a small compute cluster as in NVIDIA Tesla Personal Supercomputers. Consumers with modern GPUs who are experienced with Folding@home can use them to contribute with GPU clients, which can perform protein folding simulations at very high speeds and contribute more work to the project (be sure to read the FAQs first, especially those related to GPUs). GPUs can also enable better physics simulation in video games using PhysX, accelerate video encoding and decoding, and perform other compute-intensive tasks. It is these types of tasks that GPUs are most suited to performing.

AMD is pioneering a processor design called the Accelerated Processing Unit (APU) which combines conventional x86 CPU cores with GPUs. This approach enables graphical performance vastly superior to motherboard-integrated graphics solutions (though no match for more expensive discrete GPUs), and allows for a compact, low-cost system with good multimedia performance without the need for a separate GPU. Intel's latest processors also offer onboard graphics, but while they may have superior compute performance, their onboard graphics cannot compete with AMD APUs. As technology continues to advance, we will see an increasing degree of convergence of these once-separate parts. Eventually, CPU and GPU will be able to seamlessly work together on the same task.

Nonetheless, many tasks performed by PC operating systems and applications are still better suited to CPUs, and much work is needed to accelerate a program using a GPU. Since so much existing software use the x86 architecture, and because GPUs require different programming techniques and are missing several important features needed for operating systems, a general transition from CPU to GPU for everyday computing is very difficult.

TL;DR answer: GPUs have far more processor cores than CPUs, but because each GPU core runs significantly slower than a CPU core and do not have the features needed for modern operating systems, they are not appropriate for performing most of the processing in everyday computing. They are most suited to compute-intensive operations such as video processing and physics simulations.

tl;dr;tl;dr version: Compare the size of a GPU to that of a CPU

'Nuff said

tl;dr;tl;dr version: Compare the size of a GPU to that of a CPU

'Nuff said
Tl;dr;tl;dr;tl;dr version: size

tl;dr;tl;dr version: Compare the size of a GPU to that of a CPU

'Nuff said

Size has nothing to do with it, it's a matter of performance, a CPU is still faster than a GPU in computing tasks while a GPU is faster than a CPU in graphical tasks. Just because a GPU has more cores doesn't mean it's better, that's woman logic.

Size has nothing to do with it, it's a matter of performance, a CPU is still faster than a GPU in computing tasks while a GPU is faster than a CPU in graphical tasks. Just because a GPU has more cores doesn't mean it's better, that's woman logic.
So I was kind of right?

So I was kind of right?

Ya. The GPU doing all the work alone would draw away from it's performance by a ton, but it's the fact that right now it's still not capable of doing so, it's weak even with the amount of cores it has. If the case was that a GPU would be able to do all of this, we would have done this years ago seeing how old GPU's like GTX 275(example) and even older had more cores and was technically more powerful than an i7. They didn't go by this because the cards performance would drop dead on the floor, also every program we currently have would have to be reprogrammed and new programming languages would need to be created because a GPU works differently than a CPU.
« Last Edit: February 25, 2013, 11:41:46 AM by Blockzillahead »