Heterogeneous GPU configuration

Hello,
I am doing some CUDA-based work and have a system that I am trying to get set up properly with the following hardware:

1x GeForce GTX 470
2x GeForce GTX 1080

I am running a fresh install of Ubuntu 16.04 and have the nvidia 370.28 drivers installed via the ppa:graphics-drivers repository. At this point, everything is running and stable. nvidia-smi identifies all 3 video cards:

±----------------------------------------------------------------------------+
| NVIDIA-SMI 370.28 Driver Version: 370.28 |
|-------------------------------±---------------------±---------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1080 Off | 0000:02:00.0 Off | N/A |
| 27% 31C P8 11W / 180W | 1MiB / 8112MiB | 0% Default |
±------------------------------±---------------------±---------------------+
| 1 GeForce GTX 1080 Off | 0000:03:00.0 On | N/A |
| 27% 34C P8 10W / 180W | 587MiB / 8113MiB | 26% Default |
±------------------------------±---------------------±---------------------+
| 2 GeForce GTX 470 Off | 0000:83:00.0 N/A | N/A |
| 40% 32C P12 N/A / N/A | 1MiB / 1218MiB | N/A Default |
±------------------------------±---------------------±---------------------+

±----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 1 3323 G /usr/lib/xorg/Xorg 313MiB |
| 1 4316 G compiz 268MiB |
| 1 4692 G /usr/bin/nvidia-settings 3MiB |
| 2 Not Supported |
±----------------------------------------------------------------------------+

However, I cannot seem to get the 470 to be identified as the active GPU for the screen on the X server. One thing that seems strange to me is that lspci and nvidia-smi both report that the 470 card is on PCI 83:00.0 but nvidia-settings identifies it as PCI 131:00.0

My xorg.conf file’s Device sections look as follows:

Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce GTX 1080”
BusID “PCI:2:0:0”
EndSection

Section “Device”
Identifier “Device1”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce GTX 1080”
BusID “PCI:3:0:0”
EndSection

Section “Device”
Identifier “Device2”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce GTX 470”
BusID “PCI:131:0:0”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
Option “SLI” “Off”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “Screen”
Identifier “Screen1”
Device “Device1”
Monitor “Monitor1”
DefaultDepth 24
Option “SLI” “Off”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “Screen”
Identifier “Screen2”
Device “Device2”
Monitor “Monitor2”
DefaultDepth 24
Option “SLI” “Off”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Whenever I try to make either Screen0 use Device2 or to make the layout use Screen2 as the primary display, I get a message that I have to run in low graphics mode, etc. when X is restarted. However, the UI is dead and I have to step back any changes using the command-prompt interface (ctrl-alt-f1)

When I take the 1080’s out of the system and use only the 470, everything works as expected (after an update to the xorg.conf file via nvidia-xconfig). If I place one of the 1080’s back, X refuses to use the 470 at all, and the default display (POST, login, etc) is routed exclusively through the 1080 rather than through the 470 as I’d like.

Am I making some mistake here, or is this something that isn’t really meant to be done?

Thanks