Jump to content

2014 Mac Pro + Titan_X@16Gbps-TB2 (Sonnet xMac Pro) + Win 8.1 [martona]


martona

Recommended Posts

Hi,

I am trying to get a Titan X running with my Mac Pro and I've been unsuccessful so far. The setup is as follows:

Mac Pro 6,1

Sonnet xMac Pro enclosure

Sonnet EchoExpress III PCIe expansion

NVIDIA Titan X

External paperclipped PSU to provide power to the graphics card

The OS is Win 8.1 - I don't have OSX installed on this computer at the moment.

Physically everything seems fine (the Titan X powers on the fan - the only indicator I can think of whether or not things are working) but Windows doesn't see the Nvidia card, only the built-in AMD boards. It just doesn't show up in Device Manager, not even as an unknown device.

I do have a SATA card in the same enclosure and that works well, so the enclosure and the TB connection are fine.

I've tried replacing the Titan with an old (but working) passive-cooled bus-powered AMD card just to see if maybe the external PSU is the issue, but the results are the same; the external GPU doesn't show up in Device Manager.

I've tried plugging in one of my monitors into the external GPU before booting (while leaving the other plugged into the Mac Pro's internal AMD card) but it did not make a difference.

Am I missing something obvious? I seem to be doing things according to what others have been posting here. I haven't seen another Mac Pro post, it's always been laptops, but that shouldn't matter, right?

Link to comment
Share on other sites

As it turns out I do get the dreaded error 12 with the AMD card. Not with the Titan, but I guess I'll sort out the AMD GPU first - once I get that working the Titan should be an easy replacement, and (I guess) any issues that crop up will be PSU-related.

Actually, I get error 12 on a PCI-to-PCI bridge and not on the AMD GPU (which isn't detected) but I think it's the same deal, maybe one component earlier.

I am also having problems booting Setup 1.30; the Mac Pro is UEFI-only so it likely won't boot into FreeDOS, no matter what I do.

I will post here with any results.

Does anyone know if Windows 10 has the same issues with the PCI address space? I might be tempted to upgrade if it makes life simpler.

Link to comment
Share on other sites

As it turns out I do get the dreaded error 12 with the AMD card. Not with the Titan, but I guess I'll sort out the AMD GPU first - once I get that working the Titan should be an easy replacement, and (I guess) any issues that crop up will be PSU-related.

Actually, I get error 12 on a PCI-to-PCI bridge and not on the AMD GPU (which isn't detected) but I think it's the same deal, maybe one component earlier.

I am also having problems booting Setup 1.30; the Mac Pro is UEFI-only so it likely won't boot into FreeDOS, no matter what I do.

I will post here with any results.

Does anyone know if Windows 10 has the same issues with the PCI address space? I might be tempted to upgrade if it makes life simpler.

One trick that worked with my Zbook and a GTX670 which had an error 12 is to Device Manager -> View Devices By Connection. Then navigate down to your eGPU with the error 12 against it. Then disable the underlying PCIe bridges hosting the eGPU up the device tree. You'll be disabling like 4-6 of them. Then re-enable them.

Re-enabling them sees Windows reallocate them. Resolved error 12 for me for that configuration.

Link to comment
Share on other sites

Thanks for the tip. I tried disabling the devices up the chain and then re-enabling them but it didn't make a difference. (The item came back with the error 12 message as before.)

This is driving me nuts and I'm about to give up. Here's what I've tried:

GTX Titan X, plugged in to TB ports 1 or 2 on the Mac Pro: error 12 on a "PCI to PCI bridge" in Windows 8.1 and Windows 10. No errors but no hardware visible in OS X. (Tried hooking up a display to only the eGPU, leaving all other TB ports blank; the computer boots up and is visible on the network but there's no output from the eGPU. Remoting in from another computer shows the same error 12 issue.)

GTX Titan X, plugged in to TB ports 3, 4, 5 or 6 on the Mac Pro: black screen on power up, no startup chime, computer doesn't boot. It doesn't matter if the eGPU is the only thing connected to the Mac Pro, or if I have other displays plugged in to the rest of the TB ports.

Crappy old MSI AMD card, bus powered: exact same results.

AMD 7970: exact same results, except on the very first try - I'm not sure which port the enclosure was connected to at the time, but there was a power up chime and the eGPU displayed the Mac's UEFI boot menu! I can't reproduce it though. I tried at least a dozen times.

The above hardware (Sonnet and various GPUs inside) connected to a '13 MacBook Pro 15 (w/ NVIDIA discrete gfx): same as if the Mac Pro ports 3, 4, 5 or 6: black internal and eGPU screens on power up, no startup chime, nothing happens until I power down the computer.

Despite all this, the enclosure is fine - if I install any card other than a GPU (Areca RAID, SATA, etc) everything works great.

I really want to get this to work, and I suspect there might be something wrong with the enclosure itself. Nobody here posted anything about a Mac Pro eGPU setup, but plenty of people got it working with MacBook Pros, so I'm at a loss, because at least that should be working.. I'd be tempted to order a Highpoint NA211TB, but it's starting to get expensive - I'd be better off spending $1000 on a small form factor PC and plugging in the Titan into that. :/

Any thoughts anyone?

Link to comment
Share on other sites

Progress!

As a last ditch effort I followed the DSDT override guide, and it got me... somewhere. First I got a BSOD after rebooting with the override active - then it dawned on me that my computer has 64 gigs of RAM, and the space specified in the example collides with it. So I modified it as such:

QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x0000000000000000, // Granularity
0x0000001920000000, // Range Minimum
0x0000001E0FFFFFFF, // Range Maximum
0x0000000000000000, // Translation Offset
0x00000004F0000000, // Length
,, , AddressRangeMemory, TypeStatic)

This got me into Windows, and yay, I could see a "Microsoft Basic Video" device or something similar. I installed the NVIDIA drivers, rebooted, and got an error 12 on the Titan:

KMEyjmM.png

I'm stuck here. I created another QWORDMemory entry in dsdt.dsl to, I don't know, give room for the card (as the previous entry only fixed the PCI-to-PCI bridge and made the card visible but unusable), but it did not help. (Admittedly I have no idea what I'm doing with the DSDT.)

So, any wise thoughts?

  • Thumbs Up 1
Link to comment
Share on other sites

Ok, I got the eGPU working in OS X on the Mac Pro. I feel like an idiot - I was expecting it to show up in System Report even without drivers, kind of like how hardware shows up in Device Manager in Windows. It doesn't show up, but that's OK. I just had to install the web drivers using goalque's exellent .sh script, and it started working immediately.

Still no luck on Windows however.

  • Thumbs Up 2
Link to comment
Share on other sites

Yes, it works on the Mac Pro and a 2012 Mac Mini - perfect in OS X. My 2013 MBP won't boot with the eGPU connected, but I don't really care about that. No luck in Windows. Right now I'm trying to get Tech Inferno Fan's Setup 1.30 to boot, but this might be a dead end. So far it looks like booting is EFI-only on the Mac Pro.

Link to comment
Share on other sites

I'm dead in the water for the time being.

It's impossible to boot up Setup 1.30 on the EFI-only Mac Pro, and it doesn't seem possible to get rid of code 12 on the graphics card in Windows.

I do have a setpci command in grub2 that I can play with. I've been exchanging private messages with Nando, he recommended setting the VGAEN bit on the root bridge hosting the GPU. (In my case that's setpci -s 00:1.0 3e.b=8:8). This seems to "undo" the DSDT override in that the graphics card becomes invisible again in Device Manager, and a PCI bridge two above the card itself shows up with code 12 instead, like if the DSDT override never happened.I'm not sure what else to try at this point.

Link to comment
Share on other sites

Well, if he only needs it on OSX then it's pretty much plug and play. Just use goalque's script to install the drivers after booting with the eGPU connected to the right port, and that's it.

By "right port" I mean port 1 or 2; if he uses one of the other ports the computer won't boot.

And by "1 or 2" I mean the lowermost two ports, using this labeling as you're looking at the back of the Mac Pro as it's standing the way it's meant to:

5 6

3 4

1 2

I would also not connect anything else to the port next to the one he chooses, as the side-by-side ports share a TB controller inside, and you'll want to maximize the bandwidth available to the eGPU.

In order to get the card to turn on properly, the first boot and driver installation should occur with no monitor being connected to the eGPU. After the drivers are installed, reboot, wait until the desktop loads on the iGPU, and then plug in a monitor into the eGPU. It should flick on with Titan goodness.

Note that you won't get EFI display on the eGPU, so you probably want to keep a monitor hooked up to one of the internal TB ports if you ever want to use boot menus.

I can't really advise him on an enclosure. I'm using the xMac Pro which allows me to rackmount the computer and a bunch of peripherals, and this comes with a mechanically modified version of the Sonnet Echo Express III. I assume this is very similar to the III-D - and it's almost perfect.

I was able to graft GPU power connectors onto the built-in PSU's terminals and it's stable with a Titan. The Titan is rated at 250W TDP and it might be a bit hairy to hang that off a 300W PSU, but it does work. If he wants to use a 980Ti or some power-hungry AMD card the PSU might not be enough, and it's a pretty involved task to replace the built-in unit with a desktop one due to the nonstandard connectors on the main board (and the fact that the case has no room for a desktop PSU so it'd have to be external).

The only thing I have against my setup (aside from the fact that I can't get it to work in Windows) is that the way the xMac Pro is constructed, sliding the Echo Express III into it's place will cause the GPU's power connectors to catch onto some fan connectors. This might be circumvented with low-profile power connectors (I have some on order) - but chances are your friend isn't planning on rackmounting the thing. I don't know if the desktop Echo Express III has enough room for a full-size GPU. I know that the Highpoint NA211TB does, but I can't say anything else that's first-hand about that enclosure.

  • Thumbs Up 2
Link to comment
Share on other sites

@martona:

Did you try the new experimental [-a] mode?

Ports (1) and (2) use the same bus as the HDMI interface. Apple has numbered them as (5) and (6);

http://support.apple.com/en-us/HT202889

For the best performance, Apple recommends to attach displays to different Thunderbolt busses. It should be possible to use all the 6 ports with my script. The experimental automatic mode solves the freezing issue on OS X - I got confirmation that whichever Thunderbolt port of nMP is connected to a Kepler architecture GPU, the eGPU gave screen output. You should be able to boot with nothing plugged in nMP's HDMI interface, the screen stays black some time, but just wait for the login screen. Maxwell cards may behave differently.

Link to comment
Share on other sites

I haven't tried the experimental mode but I will be sure to check it out. I doubt it's going to work though :) The issue isn't just that there's no video when the eGPU is connected to the "wrong port", there's no startup chime or USB initialization either. The computer just seems to hang forever like that. I'll have another go at it because I'm curious, but what I'm seeing here might be limited to my own specific hardware combination.

Link to comment
Share on other sites

I haven't tried the experimental mode but I will be sure to check it out. I doubt it's going to work though :) The issue isn't just that there's no video when the eGPU is connected to the "wrong port", there's no startup chime or USB initialization either. The computer just seems to hang forever like that. I'll have another go at it because I'm curious, but what I'm seeing here might be limited to my own specific hardware combination.

And exactly that's the problem -a mode should solve. It's not about recognizing the eGPU, it's about being able to start at all! I have exactly the same behavior without the script and only with the extra boost, I can start the 2014-rMBP. :)

Link to comment
Share on other sites

I haven't tried the experimental mode but I will be sure to check it out. I doubt it's going to work though :) The issue isn't just that there's no video when the eGPU is connected to the "wrong port", there's no startup chime or USB initialization either. The computer just seems to hang forever like that. I'll have another go at it because I'm curious, but what I'm seeing here might be limited to my own specific hardware combination.

I thought that when you said earlier:

Yes, it works on the Mac Pro and a 2012 Mac Mini - perfect in OS X. My 2013 MBP won't boot with the eGPU connected, but I don't really care about that.

2013 MBP shouldn’t be a problem. And I am talking about OS X only. @Mark was able to boot straight into OS X on Titan X + III-D + 2013 MBP 750M. Without the [-a] mode, the straight boot resulted in boot screen freezing so that mouse click/enter won’t do anything. @Simurgh5 observed the same. Would be great if you can test this :) Automatic mode is at the moment just a proof of concept. I have to fix privilege issues.

Link to comment
Share on other sites

Wow, that's interesting... -a mode does in fact allow me to boot without issues, no matter where the eGPU is connected, but it doesn't seem to make a difference for Windows unfortunately. Out of curiosity, what does tbt-option=<00> do exactly?

  • Thumbs Up 1
Link to comment
Share on other sites

Wow, that's interesting... -a mode does in fact allow me to boot without issues, no matter where the eGPU is connected, but it doesn't seem to make a difference for Windows unfortunately. Out of curiosity, what does tbt-option=<00> do exactly?

Allows likely up to three Nvidia eGPUs on OS X with any TB1/TB2 Mac. This is the functionality of 2011 Mac mini as default. The same behaviour can be accomplished by exact manual delay. The value gets corrupted after each reboot, but the daemon background process fixes it. For multiple Maxwell cards, I have to find another key from 2011 Mac mini.

Mac developer library doesn't provide full documentation of NVRAM key-value pairs. Probably you have to ask details from Developer support/Apple engineer.

Link to comment
Share on other sites

  • 2 weeks later...

I think I'm ready to throw in the towel regarding this one. I can't seem to get the card working in Windows no matter what setpci "cheat codes" I try, so I took the easy way out and ordered a small mini-ITX PC that's just large enough to accommodate the Titan. I'll use that for gaming.

Link to comment
Share on other sites

I think I'm ready to throw in the towel regarding this one. I can't seem to get the card working in Windows no matter what setpci "cheat codes" I try, so I took the easy way out and ordered a small mini-ITX PC that's just large enough to accommodate the Titan. I'll use that for gaming.

Have you tried disabling your HD79xx dGPUs and the hosting PCIe bridge? Win8.1's drivers allow the eGPU to work even if the primary GPU is disabled. Please try and see if that helps resolves the error 12. Also work disabling the eGPU hosting PCIe bridges one-by-one and re-enabling them to have them re PNP the eGPU resource requirements.

Link to comment
Share on other sites

Do you mean disabling the HD79xx GPUs via setpci, or via the device manager? I've tried both even though I haven't tried disabling the hosting bridge.

If I disable them in Device Manager, one of them still comes online when Windows boots with the Microsoft Basic Display Adapter. If I disable them via setpci (just the adapters, not their bridge) Windows boots into a bluescreen.

Disabling the eGPU and the hosting chain, and then re-enabling them doesn't seem to do anything meaningful, the adapter still has code 12 after all is re-enabled.

Link to comment
Share on other sites

  • 2 weeks later...
Do you mean disabling the HD79xx GPUs via setpci, or via the device manager? I've tried both even though I haven't tried disabling the hosting bridge.

If I disable them in Device Manager, one of them still comes online when Windows boots with the Microsoft Basic Display Adapter. If I disable them via setpci (just the adapters, not their bridge) Windows boots into a bluescreen.

Disabling the eGPU and the hosting chain, and then re-enabling them doesn't seem to do anything meaningful, the adapter still has code 12 after all is re-enabled.

Curious to see if win 10 will change anything in regard to eGPU on nMP

Link to comment
Share on other sites

  • 1 month later...
Curious to see if win 10 will change anything in regard to eGPU on nMP

It did not. I ended up buying a smallish desktop PC for gaming and installed the GPU in it; it now sits on top of the rack that has the nMP in it.

TB3 is supposed to support external GPUs when it becomes available in systems; I don't know if the required software changes will trickle down to TB2 systems. I hope they will, because it doesn't look like there will be a newer Mac Pro any time soon.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.