eGPU with OS X 10.9, NVIDA GPU, PE4L & TB adapter

3 min read

A while ago I made an external GPU setup described here. Now I have replaced my Lenovo T430s laptop with a MacBook pro 13 retina (late 2013 model) and worked on getting the card to work under both Windows 7, Windows 8.1 and OS X. This post describes how to get the card working in OS X 10.9 (Maverick)

The setup used a Bplus PE4L, Sonnet Echo ExpressCard Pro Thunderbolt adapter and a NVIDIA GTX 760 graphics card. If you have a Thunderbolt enabled device I now recommend the AKiTiO Thunder2 as described in my post here.

Setup

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>BuildMachineOSBuild</key>
  <string>13A3014</string>
  <key>CFBundleDevelopmentRegion</key>
  <string>English</string>
  <key>CFBundleExecutable</key>
  <string>IONDRVSupport</string>
  <key>CFBundleGetInfoString</key>
  <string>2.4, Copyright Apple Computer, Inc. 2000-2012</string>
  <key>CFBundleIdentifier</key>
  <string>com.apple.iokit.IONDRVSupport</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>I/O Kit NDRV Support</string>
  <key>CFBundlePackageType</key>
  <string>KEXT</string>
  <key>CFBundleShortVersionString</key>
  <string>2.4</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>2.4</string>
  <key>DTCompiler</key>
  <string>com.apple.compilers.llvm.clang.1_0</string>
  <key>DTPlatformBuild</key>
  <string>5A11344p</string>
  <key>DTPlatformVersion</key>
  <string>GM</string>
  <key>DTSDKBuild</key>
  <string>13A3014</string>
  <key>DTSDKName</key>
  <string></string>
  <key>DTXcode</key>
  <string>0500</string>
  <key>DTXcodeBuild</key>
  <string>5A11344p</string>
  <key>IOKitPersonalities</key>
  <dict>
    <key>1</key>
    <dict>
      <key>CFBundleIdentifier</key>
      <string>com.apple.iokit.IONDRVSupport</string>
      <key>IOClass</key>
      <string>IONDRVFramebuffer</string>
      <key>IOMatchCategory</key>
      <string>IOFramebuffer</string>
      <key>IONameMatch</key>
      <string>display</string>
      <key>IOProbeScore</key>
      <integer>20000</integer>
      <key>IOProviderClass</key>
      <string>IOPCIDevice</string>
      <key>IOPCITunnelCompatible</key>
      <true/>
    </dict>
    <key>2</key>
    <dict>
      <key>CFBundleIdentifier</key>
      <string>com.apple.iokit.IONDRVSupport</string>
      <key>IOClass</key>
      <string>IONDRVFramebuffer</string>
      <key>IOMatchCategory</key>
      <string>IOFramebuffer</string>
      <key>IONameMatch</key>
      <string>display</string>
      <key>IOProbeScore</key>
      <integer>20000</integer>
      <key>IOProviderClass</key>
      <string>IOPlatformDevice</string>
      <key>IOPCITunnelCompatible</key>
      <true/>
    </dict>
    <key>3</key>
    <dict>
      <key>CFBundleIdentifier</key>
      <string>com.apple.iokit.IONDRVSupport</string>
      <key>IOClass</key>
      <string>IONDRVFramebuffer</string>
      <key>IOMatchCategory</key>
      <string>IOFramebuffer</string>
      <key>IOPCIClassMatch</key>
      <string>0x03000000&amp;0xff000000</string>
      <key>IOProbeScore</key>
      <integer>0</integer>
      <key>IOProviderClass</key>
      <string>IOPCIDevice</string>
      <key>IOPCITunnelCompatible</key>
      <true/>
    </dict>
  </dict>
  <key>OSBundleCompatibleVersion</key>
  <string>1.0.0b1</string>
  <key>OSBundleLibraries</key>
  <dict>
    <key>com.apple.iokit.IOGraphicsFamily</key>
    <string>1.1</string>
    <key>com.apple.iokit.IOPCIFamily</key>
    <string>1.1</string>
    <key>com.apple.kpi.iokit</key>
    <string>8.0.0</string>
    <key>com.apple.kpi.libkern</key>
    <string>8.0.0</string>
    <key>com.apple.kpi.mach</key>
    <string>8.0.0</string>
    <key>com.apple.kpi.unsupported</key>
    <string>8.0.0</string>
  </dict>
  <key>OSBundleRequired</key>
  <string>Safe Boot</string>
</dict>
</plist>

Performance

I use Geeks3D GpuTest with everything standard settings except resolution which is set to 1440x900 windowed mode.

 FurMarkTessMark (X8/X8)GiMark
Internal screen (Intel HD 5100) - score69868631420
Internal screen (Intel HD 5100) - fps1111423
External monitor (NVIDIA GTX 760) - score5313747936734
External monitor (NVIDIA GTX 760) - fps881247112
Improvement761%1089%474%

Limitations

  1. The internal screen is not accelerated, only the external monitor. Using Optimus this should be possible, worked fine on my Lenovo T430s using Windows, I need to investigate this further.
  2. Only unplug the thunderbolt cable when the computer is off, else a kernel panic will occur.
  3. Need to power the GPU and laptop off before plugging the eGPU in and the monitor must be connected to the eGPU and powered on

References

Enjoyed this content?

Help keep it free by sending a donation. You can also subscribe to various site feeds to get notified of new posts, follow me on social media, and more.

Explore more:

eGPU

↑ back to top