Jump to content
EwinRacing Flash Series Gaming Chairs
leocanela

2016 Macbook Pros and eGPUs

Recommended Posts

Hi, guys!

Currently, my dream setup would be the 2016 thunderbolt 3 Macbook pros + an eGPU

I started this topic on reddit: https://www.reddit.com/r/apple/comments/5a4hv7/can_someone_please_connect_a_razer_core_with_the/

and another user tested the Razer Core with the new Macbook pro, it didn't work even after a few fixes: https://www.reddit.com/r/apple/comments/5a6z8s/my_experience_with_the_new_13_mbp_and_the_razer/

 

Have anyone around here got the 2016 MBP and an eGPU working together already?

Would you help troubleshoot Razer Core problems with the new MBP?

 

Thanks.

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Open up Terminal, and provide the output of the following command:

system_profiler SPThunderboltDataType | sed -e '/Port (Upstream)/,/Cable/!d'

No 40 Gb/s string, right?

Share this post


Link to post
Share on other sites

That's right - no 40Gb/s string:

 

$ system_profiler SPThunderboltDataType

Thunderbolt:

 

    Thunderbolt Bus:

 

      Vendor Name: Apple Inc.

      Device Name: MacBook Pro

      UID: 0x0001493688391000

      Route String: 0

      Firmware Version: 10.8

      Domain UUID: BD1095C8-4F85-6F58-8501-4CF402D77BC8

      Port:

          Status: No device connected

          Link Status: 0x7

          Speed: Up to 20 Gb/s x1

          Current Link Width: 0x1

          Receptacle: 1

          Link Controller Firmware Version: 0.15.0

      Port:

          Status: Device connected

          Link Status: 0x2

          Speed: Up to 20 Gb/s x1

          Current Link Width: 0x1

          Receptacle: 18

          Link Controller Firmware Version: 0.15.0

 

        Core - Unsupported:

 

          Vendor Name: Razer

          Device Name: Core - Unsupported

          Vendor ID: 0x127

          Device ID: 0x215

          Device Revision: 0x1

          UID: 0x80864F4090116110

          Route String: 3

          Firmware Version: 16.16

Share this post


Link to post
Share on other sites

There is something really wrong in Thunderbolt firmware handshake. Passive TB3 cables provide transfer data up to 20Gb/s. Would be intriguing to see if the speed is shown as 20Gb/s x2 with the Belkin 40Gb/s cable, when the TB3 device is correctly detected. It should work:

 

http://forums.macrumors.com/threads/base-13-macbook-pro-benchmarks-and-egpu.2010461/#post-23825958

 

My script is discontinued and may provide only a partial support with newer AMD cards.

Share this post


Link to post
Share on other sites
21 minutes ago, fakebanana said:

That's right - no 40Gb/s string:

 

Is this a 13" with 4 TB ports? If so, it only supports full TB3 performance on the two lefthand ports. From http://www.macrumors.com/2016/10/28/macbook-pro-tb3-reduced-pci-express-bandwidth/

 

Quote

Late-2016 MacBook Pro models vary slightly in the data speeds they provide to each Thunderbolt 3 port.

MacBook Pro (15-inch, Late 2016) delivers full Thunderbolt 3 performance on all four ports.

MacBook Pro (13-inch, Late 2016, Four Thunderbolt 3 Ports) supports Thunderbolt 3 at full performance using the two left-hand ports. The two right-hand ports deliver Thunderbolt 3 functionality, but have reduced PCI Express bandwidth.

MacBook Pro (13-inch, Late 2016, Two Thunderbolt 3 Ports) delivers full Thunderbolt 3 performance on both ports.

 

 

Share this post


Link to post
Share on other sites
2 hours ago, fakebanana said:

This is a 13" with 2 TB ports. It's supposed to have full Thunderbolt 3 performance on both ports.

The picture explains it:

 

bjPOq9m.jpg

 

20Gb/s x2.

Share this post


Link to post
Share on other sites
27 minutes ago, goalque said:

The picture explains it:

 

bjPOq9m.jpg

 

20Gb/s x2.

 

@goalque, where did you find that picture?  That shows 2x20Gbps 'physical' channels.

 

The original TB1 was marketted as 20Gbs 'logical' channels, being the cumulative bandwidth across two channels. TB2 allow aggregation of those two channels to form a single TB2 20Gbps channel. However, TB2's x4 2.0 electrical link limited it to 16Gbps for PCIe traffic.

 

If indeed TB3 doesn't allow port aggregation then we only have 20Gbps performance. That being x4 3.0 (32Gbps) limited to 20Gbps down the TB3 channel. That would then only be 25% more bandwidth than TB2. Hardly worth it if true.

 

The easiest way to find out for sure what the real TB3 bandwith is,  is for a TB3 eGPU equipped owner to run CUDA-Z and report their host-to-device results, comparing to the chart at https://www.techinferno.com/index.php?/forums/topic/10581-6th-gen-i-core-has-gen3-8gbps-southbridge-pcie-ports/

 

The other important point is whether active or passive copper TB3 cables are being used, offering 20Gbps and 40Gbps bandwidth respectively.

thunderbolt-3-cable-options-980x551.jpg

 

  • Thumbs Up 1

Share this post


Link to post
Share on other sites
2 hours ago, Tech Inferno Fan said:

 

@goalque, where did you find that picture?  That shows 2x20Gbps 'physical' channels.

https://m.reddit.com/r/apple/comments/5a6z8s/my_experience_with_the_new_13_mbp_and_the_razer/?utm_source=mweb_redirect&compact=true

 

https://thunderbolttechnology.net/sites/default/files/Thunderbolt3_TechBrief_FINAL.pdf

 

It confirmed my suspicions.

Share this post


Link to post
Share on other sites
1 hour ago, goalque said:


Thank you. Here we see the important info:

 

Quote
A Thunderbolt 3 port supports up to the following:
 
• Each connector must be provided with at least the equivalent of two lanes of PCI Express Gen 3 data
• Each connector must be provided at least one full DisplayPort 1.2a (four lane) interface
 
Starting with Intel systems based on the 100 Series chipset, Thunderbolt 3 is delivered via a series of discrete silicon devices that have varying capabilities. The dual port sku supports two Thunderbolt 3 connectors, and takes 4 lanes of PCI Express Gen 3 as an input, and 2 full (four lane) links of DisplayPort 1.2a.
 
The single port sku supports a single Thunderbolt 3 connector. In general, if a system has a single Thunderbolt 3 port, the connectivity behind that port could be as high as four lanes of PCI Express Gen 3 with dual DisplayPort links. It could also be as little as two lanes of PCI Express Gen 3, with a single DisplayPort link.
 
In each case, the Thunderbolt interface itself doesn’t change, it is still 40 Gbps; however, the underlying source data and display may be more limited.
...
As a reminder, four lanes of PCI Express Gen 3 operate at (4 x 8 Gbps) 32 Gbps roughly. Thunderbolt 3 uses PCIe x4 gen 3 data rate with 128kB header sizes. For a single Thunderbolt chip with two ports, the x4 PCIe interface data rate is shared across the ports

 

.. and fakebanana is seeing this exact sharing of bandwidth across the two ports:

 

10 hours ago, fakebanana said:

$ system_profiler SPThunderboltDataType

 

Thunderbolt:

 

 

    Thunderbolt Bus:

 

      Vendor Name: Apple Inc.

      Device Name: MacBook Pro

      UID: 0x0001493688391000

      Route String: 0

      Firmware Version: 10.8

      Domain UUID: BD1095C8-4F85-6F58-8501-4CF402D77BC8

      Port:

          Status: No device connected

          Link Status: 0x7

          Speed: Up to 20 Gb/s x1

          Current Link Width: 0x1

          Receptacle: 1

          Link Controller Firmware Version: 0.15.0

      Port:

          Status: Device connected

          Link Status: 0x2

          Speed: Up to 20 Gb/s x1

          Current Link Width: 0x1

          Receptacle: 18

          Link Controller Firmware Version: 0.15.0

 

Yep, two ports with dedicated 20Gbps each. If those two cannot be aggregated to one 40Gbps port (PCIe @32Gbps), then TB3 is yet another dud like TB1 was. If Intel follows with the TB1-TB2 model, then TB4 will give us 32Gbps.  Intel and their tick-tock :(

 

NGFF.M2 like @bloodhawk is using does give him 32Gbps (x4 3.0), confirmed with CUDA-Z host-to-device results. This further explains why the NGFF.M2 results were noticable faster than TB3; the latter of which we thought was due to TB3 latency but is now looking to be due to significantly narrower 20Gbps bandwidth. REF:  https://www.techinferno.com/index.php?/forums/topic/10579-17-clevo-p870dm-g-gtx108032gbps-ngffm2-pe4c-v41-win10-bloodhawk/

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

So to summarize, even if there is as little as only one Thunderbolt 3 port it is not guaranteed that it is delivering the full speed of 40 Gbps?

 

Basically, to the existing confusion about USB-C type connectors(does it deliver DP, TB and/or USB 3.1 Gen2 etc.) for usual customers, there's now an additional confusion about the speed of the Thunderbolt 3 port(s) which simply can't be recognized from the outside before purchase? You'd have to get a look on either the board to check for the chips or have a running system to check for the hardware.

 

This is, at this point, one screwed up hell of a connector.

Share this post


Link to post
Share on other sites

Here are the results of CUDA-Z running on my Spectre x360 connected to my Razer Core. It also has two TB3 ports.

 

Host-to-device is running at around 2200 MiB/s (more than TB2, less than  NGFF.M2 ). I'm currently using the short passive cable (supposedly rated to 40Gb/s) that came with the core, but I ordered an active cable that I should get in for testing tomorrow night.

 

cuda-z results.jpg

Edited by fakebanana
  • Thumbs Up 3

Share this post


Link to post
Share on other sites
23 hours ago, goalque said:

Open up Terminal, and provide the output of the following command:


system_profiler SPThunderboltDataType | sed -e '/Port (Upstream)/,/Cable/!d'

No 40 Gb/s string, right?

 

I can also confirm the two USB-C ports on the base Late 2016 MBP show 20 Gbps.

 

I've tried my RX 470 eGPU which has been working great with an 11" MBA and 17" MBP. Unfortunately there's no Acceleration or Metal Support when connected to TB3 MBP. All the supporting kexts loaded and external monitor work through the eGPU though. Any ideas?

Edited by theitsage

Share this post


Link to post
Share on other sites
2 hours ago, theitsage said:

 

I can also confirm the two USB-C ports on the base Late 2016 MBP show 20 Gbps.

 

I've tried my RX 470 eGPU which has been working great with an 11" MBA and 17" MBP. Unfortunately there's no Acceleration or Metal Support when connected to TB3 MBP. All the supporting kexts loaded and external monitor work through the eGPU though. Any ideas?

Not alarming if the speed activates to 20Gb/s x2 with a Belkin 40Gb/s cable and TB3 chassis.

 

This should lead you on the right track:

 

https://www.techinferno.com/index.php?/forums/topic/10057-automate-egpu-efi-mac-bootscreen-on-egpu/&do=findComment&comment=151531

 

However, I suppose that you’ve already done so. Hopefully the problem is due to the bidirectional TB3-TB2-adapter. How did you check Metal acceleration? If OpenCL works, the -clpeak option may give us clues about transfer bandwidth in GBps (enqueueWriteBuffer/enqueueReadBuffer).

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Here is the CUDA-Z with GTX 1080 hooked up over TB3 (DSL6540 - Dual Port) to a P870DM-G (DSL6340 - Single Port)

 

6f5b190bd906d30f40f1771556196919.png

 

 

Output  :

Spoiler

CUDA-Z Report
=============
Version: 0.10.251 64 bit http://cuda-z.sf.net/
OS Version: Windows x86 6.2.9200 
Driver Version: 375.70
Driver Dll Version: 8.0 (6.14.13.7570)
Runtime Dll Version: 6.50

Core Information
----------------
    Name: GeForce GTX 1080
    Compute Capability: 6.1
    Clock Rate: 1733.5 MHz
    PCI Location: 0:10:0
    Multiprocessors: 20
    Threads Per Multiproc.: 2048
    Warp Size: 32
    Regs Per Block: 65536
    Threads Per Block: 1024
    Threads Dimensions: 1024 x 1024 x 64
    Grid Dimensions: 2147483647 x 65535 x 65535
    Watchdog Enabled: Yes
    Integrated GPU: No
    Concurrent Kernels: Yes
    Compute Mode: Default
    Stream Priorities: Yes

Memory Information
------------------
    Total Global: 8192 MiB
    Bus Width: 256 bits
    Clock Rate: 5005 MHz
    Error Correction: No
    L2 Cache Size: 48 KiB
    Shared Per Block: 48 KiB
    Pitch: 2048 MiB
    Total Constant: 64 KiB
    Texture Alignment: 512 B
    Texture 1D Size: 131072
    Texture 2D Size: 131072 x 65536
    Texture 3D Size: 16384 x 16384 x 16384
    GPU Overlap: Yes
    Map Host Memory: Yes
    Unified Addressing: Yes
    Async Engine: Yes, Bidirectional

Performance Information
-----------------------
Memory Copy
    Host Pinned to Device: 2147.95 MiB/s
    Host Pageable to Device: 1919.76 MiB/s
    Device to Host Pinned: 2678.09 MiB/s
    Device to Host Pageable: 2304.06 MiB/s
    Device to Device: 114.298 GiB/s
GPU Core Performance
    Single-precision Float: 8701.88 Gflop/s
    Double-precision Float: 284.502 Gflop/s
    64-bit Integer: 470.519 Giop/s
    32-bit Integer: 2619.8 Giop/s
    24-bit Integer: 2016.1 Giop/s

Generated: Mon Oct 31 21:09:50 2016

 

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Tried today hooking up my 13" 2-port 2016 MBP via an active 40Gb/s TB3 cable - same results from system_profiler, "Up to 20 Gb/s x1". eGPU still not detected via EFI utility or anything else.

 

 

 

 

Edited by fakebanana

Share this post


Link to post
Share on other sites
5 minutes ago, fakebanana said:

Tried today hooking up my 13" 2-port 2016 MBP via an active 40Gb/s TB3 cable - same results from system_profiler, "Up to 20 Gb/s x1". eGPU still not detected via EFI utility or anything else.

And says “Unsupported”? Then it’s a firmware issue. Akitio Node is compatible:

 

https://www.akitio.com/blog/articles/akitio-thunderbolt3-devices-macbook-pro

Share this post


Link to post
Share on other sites

I just got it to work in Windows 10. Roughly the same results in CUDA-Z as with the Spectre x360. This suggests it's a software issue, right?

CUDA-Z.PNG

IMG_20161101_181709.jpg

  • Thumbs Up 2

Share this post


Link to post
Share on other sites
17 minutes ago, fakebanana said:

I just got it to work in Windows 10. Roughly the same results in CUDA-Z as with the Spectre x360. This suggests it's a software issue, right?

CUDA-Z.PNG

IMG_20161101_181709.jpg

 

Woah! Does the internal screen work / how's the performance? How'd you get it working?

 

Sorry for the questions, this gets me excited :)

Edited by Gen. Crocket

Share this post


Link to post
Share on other sites

I just installed Razer Synapse, the Razer GFX card switcher, and the Nvidia drivers - I didn't have to do anything special (and I suspect the Razer software isn't actually required). When I installed Windows 10, I noticed that the Intel thunderbolt software that's normally present wasn't installed. I installed a copy, but got an error when running it that "This application is not supported on Boot Camp. (Thunderbolt devices and networking will work correctly).

 

I did notice that when I use the short passive cable that came with the core, the Core seems to power cycle itself a lot more on boot than with the active cable (they both work though). 

 

One last caveat is that while the Core will power the MBP, if you've got the Apple power brick plugged in (so that the MBP is drawing from that instead), Windows will blue screen if you unplug the power.

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Hey @fakebanana, so, you got it working on 2016 MBP with bootcamp, right? Does the I/O in the Razer Core work aswell (internet and usb)? Thanks :)

 

Share this post


Link to post
Share on other sites
1 minute ago, leocanela said:

Hey @fakebanana, so, you got it working on 2016 MBP with bootcamp, right? Does the I/O in the Razer Core work aswell (internet and usb)? Thanks :)

 

 

Yes, USB and ethernet both work too.

  • Thumbs Up 1

Share this post


Link to post
Share on other sites

There are too many factors to make final conclusions from CUDA-Z.

 

Razer Core needs a firmware update in order to be Late 2016 13” MBP compatible on macOS/OS X. This cannot be fixed by software.

 

Akitio claims only 6-8% difference compared to the motherboard:

https://www.akitio.com/faq/305-node-is-the-performance-identical-for-internal-and-external-gpus

 

And 2-6% drop compared to a 20Gbps cable:

https://www.akitio.com/faq/306-node-can-i-use-a-20-gbps-thunderbolt-3-cable

 

Sounds a contradiction. I guess the test was not CPU intensive.

 

A quad core CPU is still needed in CPU intensive gaming. A dual core i5-6200U (XPS 13) drops the frame rate by nearly 15fps compared to the i7-6700HQ in Tomb Raider benchmark:

https://www.computerbase.de/2016-10/powercolor-devil-box-test/4/

Edited by goalque
  • Thumbs Up 1

Share this post


Link to post
Share on other sites

Wow I'm looking forward to this Akitio Node already! So what we've also learnt here is that not all TB3 eGPU boxes work the same way either.

 

@fakebanana have you tried the hot-plugging the Core on Windows? Just wondering if that feature works as well.

 

The only other question now is whether TB2 enclosures will work using the TB2-TB3 adapter... I just I'll just have to find out when my MBP with the touch bar arrives!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

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.