2

I consider setting up eGPU on my MacBook (mid-2017) to improve the training time on Deep Learning. Currently, it trains only on CPU and thus is too slow and practically useless to train a large amount of data. The Deep Learning framework I use is Keras/TensorFlow, which requires to use CUDA so it must be CUDA-compatible Nvidia GPU.

Switching to a desktop workstation is not a choice as I'm a traveler. Switching to MacBook Pro is also not a choice right now as it is heavy to carry, though it might be a consideration in the future (especially because it has Thunderbolt 3 port). The cloud (AWS, etc) is not also a choice as it is far more expensive in longer-term.


Badget: $1,200

The laptop is mid-2017 MacBook with 16GB RAM; the OS is always the latest (currently Sierra)

The electrical bill is NOT a concern as I don't pay.

The biggest concern is the port is USB 3.1 Gen1, which likely doesn't perform better than the expection. But it still should be faster than the CPU on MacBook; in this case is there any recommendation to set up eGPU environment?

5
  • 1
    I'm not aware of any (beefy) eGPU solutions that don't require some PCI-like connection (which includes Thunderbolt 2 and 3). And chances are that most cases with cards will be heavier than the difference between a MacBook and a MacBookPro.
    – SEJPM
    Aug 10 '17 at 18:26
  • @SEJPM In "heavy", I meant I carry it frequently to go outside; I use eGPU only when I'm home.
    – Blaszard
    Aug 11 '17 at 5:36
  • Can you please read this apple support article and verify whether you have any generation of Thunderbolt? And can you please link to the specific model you have (so we can look at the precise connectivity options)?
    – SEJPM
    Nov 10 '17 at 20:33
  • @SEJPM is right. While there might be some kludgy way to make it work since you're using it entirely as a compute node, there's no way it will work normally nor does anyone offer the hardware to do this. You have to upgrade to a computer with some available PCI-e expansion, of which TB3 is the cleanest solution.
    – JMY1000
    Jan 9 '18 at 20:08
  • Also TensorFlow has some fairly popular forks that support OpenCL
    – JMY1000
    Jan 12 '18 at 5:06
1

Option 1. If you are locked with this machine with no option for replacing and you are interested in having only it, then you best bet for local GPU solution is using an mSata or NGFF eGPU like this https://www.banggood.com/NGFF-Version-V8_0-EXP-GDC-Beast-Laptop-External-Independent-Video-Card-Dock-p-1009978.html?rmmds=search It is quite slow, but it will boost performance for GPU based application considerably - especially if you'll connect to it an external monitor (thus relieving the PCIe connection from having to transmit the video signal too)

Option 2: Otherwise, consider simply getting another pc (no need for a laptop) to do the heavy lifting. You can buy something rather cheap with a good GPU. You can even connect to it remotely from your laptop, sending it tasks

Option 3. you might want to consider running GPU tasks on a remote machine altogether. There are such services

1
  • Option 1 won't work; ignoring that mSATA != mini PCI-e or NVMe NGFF, the MacBook is completely soldered down, and there's no way to connect any sort of solution up through there.
    – JMY1000
    Jan 9 '18 at 20:06
1

Don't waste your time with an eGPU, it'll just be slower and more annoying than putting a GPU on a separate machine. If you want that one to be small, that's doable. See my similar answer here for a bit more of an explanation.

1
  • See my comment on your other answer. Here though the problem is actually less severe, since for the purposes of deep learning, going to the system memory except to exchange batches is so slow that it might as well be treated as an error.
    – JMY1000
    Jan 12 '18 at 5:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.