1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Proof Of Concept: Open-Source Multi-GPU Rendering!

X.Org

Published on 12 March 2010 07:36 AM EST
Written by Michael Larabel in X.Org
26 Comments

Now that David Airlie's vga_switcheroo has went upstream in the Linux 2.6.34 kernel that provides hybrid graphics support and delayed GPU switching, David went on to look for something new to work on in his downtime when not busy with tasks at Red Hat. This new work is on GPU offloading / multi-GPU rendering.

Last month NVIDIA introduced Optimus as a way for dual-GPU notebooks to seamlessly switch between the two GPUs but also to offload the rendering workload to the other graphics processor. This is somewhat similar to NVIDIA's SLI and ATI/AMD's CrossFire for splitting the rendering workload across multiple GPUs, but it has its differences. David ended up developing a proof-of-concept similar to NVIDIA's Optimus that he is calling "Prime" and it works with Intel and ATI GPUs.

David's goals with Prime are to allow a second GPU to render 3D applications onto the screen of the first GPU, with it being configurable by the client, and just to handle the rendering side. This work isn't as simple as his vga_switcheroo implementation, but it required changes to the Linux kernel and the Graphics Execution Manager (GEM), the DRI2 protocol, the X Server and DRI2 modules, and then the actual Linux hardware drivers.

All of this code has already been published as a proof-of-concept, but David shares on his blog that he's unlikely to personally take this work further by upstreaming the code. He has been successful though in using this code to offload the rendering work from an Intel IGP that's driving a display to a discrete ATI graphics processor.

Right now Intel and ATI hardware is supported, but NVIDIA GPUs could be supported too. This work depends upon a system using DRI2 (albeit with these out-of-tree patches) and a compositing manager must be running. David also shares, "To make this as good as Windows we need to seriously re-architect the X server + drivers. At the moment you can't load an X driver without having a screen to attach it to, I don't really want a screen for the slave driver, however I still have to have one all setup and doing nothing and hopefully not getting in the way. We'd need to separate screen + drivers a lot better. Having some sort of dynamic screens would probably fall out of this work if someone decides to actually do it."

It would be wonderful if this work on Prime could be continued and it works its way upstream or that someone takes the reigns from David to continue on with this GPU offloading work for open-source drivers. First though it may make more sense to focus on getting decent performance out of a single GPU before dealing with multi-GPU excitement.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. Intel Broadwell HD Graphics 5500: Windows 8.1 vs. Linux
  2. Linux Benchmarks Of NVIDIA's Early 2015 GeForce Line-Up
  3. NVIDIA GeForce GTX 960: A Great $200 GPU For Linux Gamers
  4. Disk Encryption Tests On Fedora 21
  5. Xonotic 0.8 Performance With The Open-Source AMD/NVIDIA Gallium3D Drivers
  6. Many Linux Desktop 2D Benchmarks Of NVIDIA vs. AMD Drivers
Latest Linux News
  1. BPF Backend Merged Into LLVM To Make Use Of New Kernel Functionality
  2. Dying Light Is Headed To Linux, SteamOS
  3. Wayland 1.6.1 & Weston 1.6.1 Released
  4. Mesa 10.4.3 Brings A Bunch Of Fixes For The Direct3D "Nine" Support
  5. Intel Has A Few More Graphics Changes For The Linux 3.20 Kernel
  6. Gummiboot Gains PE File Searching Support To Find Linux Kernels
  7. Wine 1.7.35 Starts Working On OpenGL Core Context Support
  8. X.Org Server 1.17 Pre-Release "TimTam" Is Out
  9. Faster VP9 Decoding Is On The Horizon
  10. GNOME 3.15.4 Brings Latest Features For GNOME 3.16
Most Viewed News This Week
  1. Windows 10 To Be A Free Upgrade: What Linux Users Need To Know
  2. CoreOS Moves From Btrfs To EXT4 + OverlayFS
  3. Google Admin Encourages Trying Btrfs, Not ZFS On Linux
  4. TraceFS: The Newest Linux File-System
  5. Asynchronous Device/Driver Probing For The Linux Kernel
  6. LZHAM 1.0 Isn't Too Far Away For Compression Of Interest To Game Developers
  7. Mozilla's Servo Still On Track For 2015 Alpha Release
  8. Systemd-Import Expands Its Container Capabilities