1
$\begingroup$

In most cases I frequently heard that to make a deep learning experiment, it is highly recommended to use GPU. It makes the computation blazingly faster than CPU, and sounds like a magical tool (although I can't use it since I use MacBook...).

However, is there any single disadvantage to use GPU, possibly except the higher monetary cost? For example the higher likelihood of getting crashed, etc...?

$\endgroup$
2
  • 2
    $\begingroup$ They're expensive and have limited memory. $\endgroup$
    – Emre
    May 28, 2017 at 1:38
  • $\begingroup$ The overhead of transferring data to and from the GPU can often wipe out any advantages in parallelization. The CPU is less parallelizable, but much more flexible. The GPU is much more parallelizable, but a lot less flexible. If you've got a standard linear algebra routine you want to run on the GPU like matrix multiply, it might be a good candidate, but you'd have to have gigantic matrices to make it worth the effort. $\endgroup$ Jun 8, 2017 at 16:44

1 Answer 1

1
$\begingroup$

Transportation of data to and from the GPU. Data goes into GPU through the bus, allocated into the memory, processed and sends back the results through the same channel. Whether it is noticeable or not it takes time.

Unlike CPU which features sequential execution, GPU features parallel executions and its blazingly fast.

One main disadvantage of GPUs is that it's not built for deep learning instead its originally designed to implement graphics pipelines. As deep learning also align the same kind of computation(matrix multiplications), GPUs were used for deep learning.

More at Are there any disadvantages of using GPU in deep learning?

GPU's are very fast at applying the same instruction to multiple data points (SIMD). However, if you add branching (an if), the two branches will be serialized (first the if on all data that takes it, then the else on all data that doesn't - so still quite parallel, but not entirely). Also, if you have very few data points, the overhead of uploading to the GPU and downloading the result will likely dominate the overall execution time - it might be cheaper to just execute on the CPU instead.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.