2017 15" Macbkook Pro RP560 + [email protected] (Aorus Gaming Box) + macOS 10.13.3 [Shian Yip]
MacBook Pro 15-inch, 2017,
CPU: 2.9 GHz Intel Core i7,
iGPU: Intel HD Graphics 630,
dGPU: Intel HD Graphics 630,
operating system: macOS 10.13.3
eGPU enclosure: Gigabyte Aorus Gaming Box (GTX 1070)
Edit for later.
Install the Nvidia Web Driver with the automated script offered by @fr34k. Thanks for your effort and looking foward the release of 10.13.4 support.
Reboot, plug in the GGB when the login page shows (It seems like that the system will frozen for 3-5s after plugging in the box), then login the system. The eGPU will be detected.
No Hotplug Support, the safest way to plug out the eGPU is click the Nvidia Icon on the system menu bar and switch to the "default mac os graphics driver", after what your macbook will auto reboot. You can plug out the box when the Macbook shut down.
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1070" CUDA Driver Version / Runtime Version 9.1 / 9.1 CUDA Capability Major/Minor version number: 6.1 Total amount of global memory: 8192 MBytes (8589737984 bytes) (15) Multiprocessors, (128) CUDA Cores/MP: 1920 CUDA Cores GPU Max Clock rate: 1721 MHz (1.72 GHz) Memory Clock rate: 4004 Mhz Memory Bus Width: 256-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 2 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Supports Cooperative Kernel Launch: Yes Supports MultiDevice Co-op Kernel Launch: No Device PCI Domain ID / Bus ID / location ID: 0 / 70 / 0 Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1Result = PASS
[CUDA Bandwidth Test] - Starting...Running on...
Device 0: GeForce GTX 1070 Quick Mode
Host to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 1346.8
Device to Host Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 2703.6
Device to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 191396.3
Result = PASS
NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
The reason why I want to have an eGPU is that I want to test my deep learning model on my Macbook (the cost of renting a VM with Tesla card on AWS or GCP has become more and more expensive, maybe it is not the best shot anymore). So after investing for weeks. I purchased the Arous Gaming Box with pre-install Nvidia GTX 1070 yesterday.
For me, configure the eGPU itself is relatively easy. Just run the script mentioned above and reboot the device several times. But training or testing the deep learning model is a much more nasty work. Nearly every mainsteam machine learning frameworks, like Tensorflow, PyTorch, MXNet, etc. haven't offer the out-of-box GPU support on Mac OS anymore, which means I have to compile these frameworks from source code. No mentioned that I have to install CUDA toolkit, cuDNN…
Anyway, thanks to the efforts from the pioneers of this community, I have smoothly finished the configuration of eGPU at least. I will focus on configuring the machine learning enviroment tomorrow, and I will update this review if I get some progress.
I have a MacBook Pro 15-inch (2016) and an Aorus Gaming Box 1070, very similar to yours. I am on macOS 10.13.3 (supplemental). I am only using the internal MacBook display, and only want the 1070 for CUDA compute tasks. I am not trying to accelerate the main screen.
I am following the same steps (thanks @fr34k, and thanks @shian-yip for the advice about plugging in before log-in, that works well). The eGPU is working correctly, but the internal display is now using the MacBook Pro's Intel HD Graphics 530, and has severely reduced performance. My desktop and general scrolling tasks are laggy.
I have previously had eGPUs working without such display problems on both 10.12.6 and earlier 10.13 builds.
Anyone have any thoughts? Thanks!
emmmm... I can't tell why your inner screen can only use the built-in Intel graphics card. But I don't think that drive the inner screen with this graphics card will cause a performance problem, because all Macbook pro 13'' users rely on this card to drive their inner screen.
Maybe you should consider it as a web driver problem. Which version of the Nvidia web driver are you using? At first I using the default version comes from the script, then I upgrade it to the latest stable version 318.104.22.168.25,161. Both of these two version work well, but the last one do promote the GPU performance and stability.
About the trouble itself, maybe you should try to disable the 'Automatic Graphics Switching' options in the System Preferences -> Energy Saver. It works for most Macbook pro 15'' users. I hope it can help you.