User:Guanguangua/sandbox/GPU Switching

GPU switching is a mechanism used on computers with multiple graphic controllers. This mechanism allows the user to either maximize the graphic performance or prolong battery life by switching between the graphic cards. It's mostly used on gaming laptops which usually have an integrated graphic device and a discrete video card.

Basic components
Most computers used this feature contain integrated graphics processors and dedicated graphics cards that applies to the following categories.

Integrated graphics
Also known as: Integrated graphics, shared graphics solutions, integrated graphics processors (IGP) or unified memory architecture (UMA). This kind of graphics processors usually have much fewer processing units and share the same memory with the CPU. Sometimes the graphics processors are integrated onto a motherboard. It is commonly known as: on-board graphics. A motherboard with on-board graphics processors doesn't require a discrete graphics card or a CPU with graphics processors to operate.

Dedicated graphics cards
Also known as: discrete graphics cards. Unlike integrated graphics, dedicated graphics cards have much more processing units and have its own RAM with much higher memory bandwidth.

In some cases, a dedicated graphics chip can be integrated onto the motherboards, B150-GP104 for example. Regardless of the fact that the graphics chip is integrated, it is still counted as a dedicated graphics cards system because the graphics chip is integrated with its own memory.

Northbridge control
Most computers have a motherboard that uses a Southbridge and Northbridge structure. The Northbridge is one of the core logic chipset that handles communications among the CPU, GPU, RAM and the Southbridge. The discrete graphics card is usually installed onto the graphics card slot and the integrated graphics is integrated onto the CPU or occasionally onto the Northbridge. The Northbridge is the most responsible for switching between GPUs. The way how it works usually has the following process:
 * 1) The Northbridge receives input from Southbridge through the internal bus.
 * 2) The Northbridge passes down the input to CPU through the Front-side bus.
 * 3) The CPU runs the task assignment application (usually the graphics card driver) to determine which GPU core to use.
 * 4) The CPU passes down the command to the Northbridge.
 * 5) The Northbridge passes down the command to the according GPU core.
 * 6) The GPU core processes the command and return the rendered data back to the Northbridge.
 * 7) The Northbridge send the rendered data back to Southbridge.

Southbridge control
The Southbridge is also named as I/O Controller Hub (ICH). It handles all of a computer's I/O functions, such as receiving the keyboard input and outputting the data onto the screen. The way how it usually works usually has two steps: The reason why the second step can be optional is that sometimes the rendered the data is outputted directly from the discrete graphics card which is located on the graphics card slot so there is no need to output the data through the Southbridge.
 * 1) Take in the user input and pass it down to the Northbridge.
 * 2) (Optional) Receive the rendered data from the Northbridge and output it.

Main purpose
GPU switching is mostly used for saving energy by switching between graphic cards. The dedicated graphics cards consume much more power than integrated graphics but also provides higher 3D performances, which is needed for a better gaming and CAD experience. Following is a list of the TDPs of the most popular CPU with integrated graphics and dedicated graphics cards.

The dedicated graphics cards exhibit much higher power consumption than the integrated graphics on both platforms. Disabling them when no heavy graphics processing is needed can significantly lower the power consumption.

Nvidia Optimus™
Nvidia Optimus™ is a computer GPU switching technology created by Nvidia that can dynamically and seamlessly switch between two graphic cards based on running programs.

AMD Enduro™
AMD Enduro™ is a collective brand developed by AMD that features many new technologies that can significantly save power. It was previously names as: PowerXpress and Dynamic Switchable Graphics (DSG). This technology implements a sophisticated system to predict the potential usage need for graphics cards and switch between graphics cards based on predicted need. This technology also introduces a new power control plan that allows the discrete graphics cards consume no energy when idling.

Integrated graphics
In personal computers, the IGP (integrated graphics processors) are mostly manufactured by Intel and AMD and are integrated onto their CPUs. They are commonly known as:
 * Intel HD and Iris Graphics - also called HD series and Iris series


 * AMD Accelerated Processing Unit (APU) - also formerly known as: fusion

Dedicated graphics cards
The most popular dedicated graphics cards are manufactured by AMD and Nvidia. They are commonly known as:
 * AMD Radeon


 * Nvidia GeForce

Drivers & OS Support
Most common operating systems have build-in support for this feature. However, the users may download the updated drivers from Nvidia or AMD for better experience.

Windows support
Windows 7 has built-in support for this feature. The system automatically switches between GPUs depending on the program that's running. However, the user may switch the GPUs manually through device manager or power manager.

Linux support
In the Linux systems, a patch named has been added to the Linux kernel since version 2.6.34 in order to deal with multiple GPU. Here, the switch requires a restart of the X Window System to be taken into account.

Ubuntu Control Center allows the user to access  functionality through a GUI.

Mac OS support
Mac OS has build-in support for this feature since Patch v10.5 Leopard. Since patch OS X Mountain Lion, Apple has integrated the GPU monitor into the Activity Monitor.

Existing troubles

 * System incompatibility or unstable power supply may cause Blue Screen of Death
 * Unable to switch if the system wrongly estimated the required computing resource
 * Switching may cause unstable voltage which can lead to flashy screen