GPU Computing: One of the Era of AI !
The CPU the brain of a computer is being enhanced by another part of the computer these days – the GPU (graphics processing unit), which is its soul. GPU is an electronic circuit that manipulates and alters memory to accelerate the creation of images in a frame buffer intended for output to a display device. It is efficient at manipulating computer graphics and are more effective than CPUs for algorithms where processing of large blocks of data is done in parallel.
World's first GPU the GeForce 256 was marketed by Nvidia. Initially GPUs were used for gaming consoles, mobile phones, embedded systems, workstations etc. used merely as graphics controller function or for rendering graphics only. But modern GPUs capabilities are being harnessed in many fields like to name a few - computer graphics, image processing, financial modelling, scientific research, oil-gas exploration etc.
The powerful and efficient parallel computing provided by GPU computing is widely used by Data Scientists to make ground breaking improvements in applications like image classification, nlp, video analytics, speech recognition etc. In deep learning the deep i.e. multi-level neural network that is used to create systems that can perform tasks of feature detection from humungous amount of unlabelled training data is possible with parallel processing capabilities of these GPUs only. GPUs can train these deep neural networks using large training sets, in comparatively less time, using far less datacenter infrastructure. GPUs can also be used to run these trained models to do classification and prediction in the cloud, with comparatively more data volume and throughput and with very less power and infrastructure.
CUDA is one of the parallel computing programming model for computing on GPUs. Also in GPU-accelerated applications, the sequential part of the workload runs on CPU only as it is optimised for single-threaded performance, while the compute intensive portion of the application runs on thousands of GPU cores in parallel. Another example is many AI hashing algorithms like bitcoin uses GPUs.
Google Colab is another free cloud service that supports free GPU. The most important feature that distinguishes Colab from other free cloud services is Colab provides GPU and is totally free.
Now one may wonder how GPU is different from CPU ? And where to use GPU and not CPU? So to answer such questions we need to understand that one can do graphics processing on a CPU like we do traditionally using graphic cards but but hold your horses. CPU won't produce the result anywhere nearly as fast as a properly programmed GPU especially when you are dealing with massive amount of unlabelled data and where one need to perform some feature extraction task. Then with CPU this is really a challenging task actually kind of impossible compared to GPU. Actually in real essence GPU is used to do any calculations for graphics, while your CPU can be used to do any other non-graphics calculations at the same time. CPU can perform simple central work on the other hand GPU performs complex calculations to render animations, images and videos. CPU have few but powerful cores and GPU have less powerful but thousands of cores. CPU is good for processing sequential works rather than parallel works whereas GPU is very good at processing parallel tasks. So GPU actually complements CPU in performing complex calculations.
Essentially GPU and CPU are both important organs of computer but each has a different purpose. In other words CPUs and GPUs have completely different architectures that make them apt. for different tasks. A GPU can handle large amounts of data in many streams, performing relatively simple operations on them, but not suited for complex processing on a single or few streams of data. A CPU is much faster 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. A CPU is like a worker that goes super fast. A GPU is like a group of clone workers that go fast but all of which do exactly the same thing in unison.
So CPU and GPU are designed with different goals and with different trade-offs. Hence they have different performance. Certain tasks are faster in a CPU while other tasks are faster in a GPU. The CPU excels at doing complex manipulations to a small set of data whereas the GPU excels at doing simple manipulations to a large set of data. So one must chose hardware configuration of the system as per the requirement.
GPU computing is like a time machine and most demanding type of computing for users like scientists, gamers, designers, artists and researchers.
Director at CDK Global
6 年Good Introduction Karuna Ma'am ! :) You can also mention support for GPU from top companies like Apple (OpenCL) and Microsoft (DirectCompute), etc.