Background Information

GPUs and CPUs Comparisons

Unlike a CPU, a GPU has many cores, sometimes in the hundreds, even up to the thousands, allowing for far more actions to be completed at the same time. GPUs are also well-versed in completing the same task repetitively and quickly. However, GPUs have far fewer actions that they can complete, often boiling down to the simplest of tasks. Examples of tasks where GPUs are preferred include Machine Learning, large data processing, and Bitcoin mining.

Block diagram of the hardware of a CPU Block diagram of the hardware of a GPU

As can be seen in the images above, CPUs (left) and GPUs (right) have different architectures to fit their differing roles. Generally, GPUs have only one I/O port, referred to as the PCI, while the CPU has separate I/O ports. The CPU also outputs from the CPU itself, while the GPU’s PCI port is linked directly to the memory registers. As previously stated, GPUs also have more cores than CPUs, to allow for more tasks to be completed at once. A GPU also relies on a host to handle all I/O, as well as to provide its instructions, while a CPU takes in the instructions directly, and will likely be the GPU's host in the first place.

How does a GPU handle an image?

Diagram of how a GPGPU translates a video onto a screen

The above image shows how a GPU translates a video file into an video that is shown on the screen, following the Gaussian Method.

It starts by receiving the frame data from the host. It then detects the Gaussian distributions of variables within the frame, as well as any necessary data about these distributions. Then, it quickly calculates the initial variance and weight of the frame, as well as the maximum possible number of variances. Once these calculations are complete, it's able to use these values and the original file to determine the state of the pixel in the output frame, which it then outputs to the screen.