HOME

TheInfoList



OR:

Nvidia Optimus is a computer
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 is mostly used on gaming ...
technology created by
Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
which, depending on the resource load generated by client software applications, will seamlessly switch between two graphics adapters within a computer system in order to provide either maximum performance or minimum power draw from the system's graphics rendering hardware. A typical platform includes both a lower-performance
integrated graphics processor A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
, usually by
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
or
AMD Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
, and a high-performance one, usually by Nvidia or AMD. Optimus saves battery life by automatically switching the power of the discrete
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
(GPU) off when it is not needed and switching it on when needed again. The technology mainly targets mobile PCs such as
notebooks A notebook is a small book often used for writing. Notebook or The Notebook may also refer to: Computing *Laptop, a type of personal computer **Notebook (laptop), a specific, smaller class of laptop *Google Notebook, a discontinued online appli ...
. When an application is being launched that is determined to benefit from the performance of the discrete GPU, the discrete GPU is powered up and the application is served by a rendering context via that GPU. Otherwise the application is served by a rendering context that uses the integrated GPU. Switching between the graphics processors is designed to be completely seamless and to happen "behind the scenes". Official supported operating systems by Nvidia are
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
. A project called Bumblebee is an alternative
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
implementation of Optimus support for Linux.


Operation

When a user launches an application, the graphics driver tries to determine whether the application would benefit from the discrete GPU. If so, the GPU is powered up from an
idle Idle generally refers to idleness, a lack of motion or energy. Idle or ''idling'', may also refer to: Technology * Idle (engine), engine running without load ** Idle speed * Idle (CPU), CPU non-utilisation or low-priority mode ** Synchronou ...
state and is passed all rendering calls. Even in this case, though, the integrated graphics processor (IGP) is used to output the final image. When less demanding applications are used, the IGP takes sole control, allowing for longer battery life and less fan noise. Under Windows the Nvidia driver also provides the option to manually select the GPU in the right-click menu upon launching an executable. Within the hardware interface layer of the Nvidia GPU driver, the Optimus Routing Layer provides intelligent graphics management. The Optimus Routing Layer also includes a
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
-level library for recognizing and managing specific classes and objects associated with different graphics devices. This Nvidia innovation performs state and context management, allocating architectural resources as needed for each driver client (i.e., application). In this context-management scheme, each application is not aware of other applications concurrently using the GPU. By recognizing designated classes, the Optimus Routing Layer can help determine when the GPU can be utilized to improve rendering performance. Specifically, it sends a signal to power-on the GPU when it finds any of the following three call types: * DX Calls: Any 3D game engine or
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
application will trigger these calls * DXVA Calls: Video playback will trigger these calls (DXVA = DirectX Video Acceleration) *
CUDA In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
Calls: CUDA applications will trigger these calls Predefined profiles also assist in determining whether extra graphics power is needed. These can be managed using the Nvidia control panel. Optimus avoids usage of a hardware
multiplexer In electronics, a multiplexer (or mux; spelled sometimes as multiplexor), also known as a data selector, is a device that selects between several Analog signal, analog or Digital signal (electronics), digital input signals and forwards the sel ...
and prevents glitches associated with changing the display driver from IGP to GPU by transferring the display surface from the GPU
frame buffer A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
over the PCI Express bus to the main memory-based framebuffer used by the IGP. The Optimus Copy Engine is a new alternative to traditional DMA transfers between the GPU framebuffer memory and main memory used by the IGP. Using the IGP to output data from the discrete GPU may become a bottleneck at high framerates. On desktop-replacement or gaming laptops (where performance is prioritized over energy efficiency), Optimus technology has been heavily criticized. Some vendors have provided hardware multiplexer solutions to completely shut off the Optimus architecture. The operation may be hosted in the BIOS, and often require a reboot.


Linux support

While historically problematic, the binary Nvidia driver since beta version 435.17 officially supports Optimus render offloading for OpenGL and Vulkan applications under the name "PRIME". The binary Nvidia driver added partial Optimus support May 3, 2013 in the 319.17. As of May 2013, power management for discrete card is not supported, which means it cannot save battery by turning off Nvidia graphic card completely. The open-source projec
Bumblebee
tries to provide support for graphics-chip switching. As in the Windows implementation, by default all applications run through the integrated graphics processor. one can only run a program with improved graphical performance on the discrete GPU by explicitly invoking it as such: for example, by using the
command line A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
or through specially configured shortcut icon. Automatic detection and switching between graphics processors is not yet available. Work in progress on a
graphical interface A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of te ...
- ''bumblebee-ui'' - aims to allow more convenient starting of programs for improved graphical performance when necessary.
Steam Steam is water vapor, often mixed with air or an aerosol of liquid water droplets. This may occur due to evaporation or due to boiling, where heat is applied until water reaches the enthalpy of vaporization. Saturated or superheated steam is inv ...
for Linux can be set up to run games using the discrete GPU
Steam Community: Optimus and Steam for Linux
. The Bumblebee Project continues to evolve as more necessary software changes are made to the graphics architecture of Linux. To make the most use of it, it is best to use a recent Linux distribution. , Bumblebee software repositories are available for
Arch Linux Arch Linux () is an Open-source software, open source, rolling release Linux distribution. Arch Linux is kept up-to-date by regularly updating the individual pieces of software that it comprises. Arch Linux is intentionally minimal, and is meant ...
,
Debian Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
,
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
, Gentoo,
Mandriva Mandriva S.A. was a Public company, public software company specializing in Linux and open-source software. Its corporate headquarters was in Paris, and it had development centers in Metz, France and Curitiba, Brazil. Mandriva, S.A. was the deve ...
,
OpenSuSE openSUSE () is a free and open-source software, free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: ''Tumbleweed'', an upstream rolling release distribution, and ''Leap'', a stable r ...
and
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
. The source package can be used for other distributions. An attempt by Nvidia to support Optimus through DMA-BUF, a
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
-mechanism for sharing buffers across hardware (potentially GPUs), was rebuffed by kernel developers in January 2012 due to
license A license (American English) or licence (Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another part ...
incompatibility between the GPL-licensed kernel-code and the proprietary-licensed Nvidia blob. When no software mechanism exists for switching between graphics adapters, the system cannot use the Nvidia GPU at all, even if an installed graphics driver would support it.


Modern Optimus Support

Many Linux distributions now support Nvidia offloading, where the Nvidia card does all rendering. For example on a notebook with an integrated Intel graphics device, which is physically connected to the notebook's display, the Nvidia card renders to the display memory of the integrated device. To avoid tearing, the Xorg server has a mechanism called Prime Synchronization to time these buffer updates, similar to vsync; the Nvidia driver must be loaded as a kernel module for this to work. This is not usually activated by default. Unlike Bumblebee, this offloading solution allows multi-monitor graphics. The disadvantage is that toggling the Nvidia card requires a logout. The leading implementation of this approach is Ubuntu's 'prime-select' package, which has a command line and graphical tool to turn the Nvidia card off. Unlike Windows, this is not done dynamically, and the user must restart the login session for the change to take effect. Ubuntu's prime-select script is available on Ubuntu derivatives, which in some cases add their own graphical tools. The prime-offload approach has been ported or reimplemented in arch and fedora. In 2016, Nvidia announced GL Vendor Neutral Dispatch, meaning both Intel and Nvidia drivers can be simultaneously installed. This has greatly simplified the process of switching modes, although it took until 2018 when distributions started taking advantage. Some older and high-end laptops contain a
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is a type of firmware used to provide runtime services for operating systems and programs and to perform hardware initialization d ...
setting to manually select the state of the hardware multiplexer to switch output between the two video devices. In this case, a Linux user can place the laptop in hardware configurations where there is only once graphics device. This avoids the complexities of running two graphics drivers but offers no power savings. Since driver version 435 the proprietary driver supports render offloading of a single window. It creates a virtual display where the dGPU renders to, which will be displayed in the window on the main screen for offloaded application. As of October 2019 this requires usage of the xorg development branch, since needed modifications are not yet released.


See also

*
AMD Hybrid Graphics AMD Hybrid Graphics technology is a collective brand from Advanced Micro Devices, AMD for features of its Radeon line of discrete and integrated Graphics Processing Unit, GPUs, promoting higher performance and productivity while reducing energy c ...


Notes


References

{{Nvidia Nvidia Graphics hardware