If GPU's are so good at doing things, why don't we use GPU's instead of CPU's for all computations? What can CPUs do that GPUs can't?
Nesuna
Maybe it has to do with the inherently parallel nature of graphics rendering that makes it possible for this type of performance rather than traditional CPU computation?
anon
GPUs are very good at doing parallel computations because that is the type of work they were designed to do. CPUs are designed to be effective for the work that is done by an operating system, so they have more features which are helpful for an operating system. One example of this is the interrupt support given by CPUs.
tommywow
One example of GPU usage today is training neural networks. A multi layer perceptron can be expressed as a series of matrix multiplications, and GPUs are excellent at that because they excel at SIMD
ferozenaina
For a single thread, the CPU is much faster than a CUDA core. Most of our programs are single threaded running on a core or at-least do not effectively require 100s of cores. Most everyday programs are UI heavy and it is hard to parallelize the these. So, it's easier to run them on a 2+ GHz single core.
The ISA also differs - CPU supports a lot more than the GPU.
If GPU's are so good at doing things, why don't we use GPU's instead of CPU's for all computations? What can CPUs do that GPUs can't?
Maybe it has to do with the inherently parallel nature of graphics rendering that makes it possible for this type of performance rather than traditional CPU computation?
GPUs are very good at doing parallel computations because that is the type of work they were designed to do. CPUs are designed to be effective for the work that is done by an operating system, so they have more features which are helpful for an operating system. One example of this is the interrupt support given by CPUs.
One example of GPU usage today is training neural networks. A multi layer perceptron can be expressed as a series of matrix multiplications, and GPUs are excellent at that because they excel at SIMD
For a single thread, the CPU is much faster than a CUDA core. Most of our programs are single threaded running on a core or at-least do not effectively require 100s of cores. Most everyday programs are UI heavy and it is hard to parallelize the these. So, it's easier to run them on a 2+ GHz single core.
The ISA also differs - CPU supports a lot more than the GPU.