Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

External GPU for machine learning [closed]

Tags:

macos

gpu

I own MacBook Pro 15' Mid 2014 and I am thinking about buying Titan X GPU to speed up training of my neural networks. Titan will be connected via Thunderbolt 2 as an external GPU.

What sort of performance can I expect from this setup - will it be the same as if it was connected to the motherboard? Does the thunderbolt limit the speed of the GPU?

like image 411
Piotr Dabkowski Avatar asked Apr 28 '16 22:04

Piotr Dabkowski


People also ask

Are external GPUs good for machine learning?

If you want to stick with your portable Notebook, getting a hand on an external GPU can definitely speed up your AI game. Especially Computer Vision Tasks will benefit a lot. It will not only save you precious time but also can retain a good health of your machine for a much longer time.

Can you run a GPU externally?

Answer: The concept of having an external GPU or eGPU is relatively new in the market. However, it is an amazing device that helps to achieve desktop quality graphics on any compatible PC. External graphic cards do come with a compatible hardware interface that is easy to set up and use.

Can I use an eGPU with Linux?

While some manual configuration (shown below) is needed for most modes of operation, Linux support for eGPUs is generally good.

Is dedicated GPU required for machine learning?

Do I need a GPU for machine learning? Machine learning, a subset of AI, is the ability of computer systems to learn to make decisions and predictions from observations and data. A GPU is a specialized processing unit with enhanced mathematical computation capability, making it ideal for machine learning.


2 Answers

I recently connected a GTX 970 via Thunderbolt 2 to my Macbook Pro 13 Late 2013. GPU benchmarks yielded around 70% performance when compared to using a PCI-Express socket inside of my desktop as Thunderbolt 2 does limit the PCI-Express to X4 bandwidth speeds vs x16 in a desktop application.

The cheapest way of achieving this is to use an Akito 2 enclosure, remove the external case and rear to fit a large GPU, then you can wire a normal ATX power supply to the graphics card and to the Akito dock power source. You must provide 75 watts to the PCI-Express slot in order to use an external graphics card so using the power pack that comes with the Akito device is not possible.

There's a lot of information on the web about the Akito 2 set up I recommend you take a look.

like image 103
Jamie Gilbert Avatar answered Sep 23 '22 21:09

Jamie Gilbert


Transferring data between the CPU and GPU is quite costly in machine learning, and can end up being a real bottleneck. Using an external graphics card will therefore have a significant impact on performance, and I definitely wouldn't recommend it.

I've done some ML on a 4 year old Macbook Pro and it worked fine for the dataset I was working on, however if you have some heavy number crunching to do you can't beat a desktop computer with a good dedicated graphics card.

If a desktop PC isn't possible you could also consider using an online service such as Amazon EC2 which offer servers with GPUs.

You'll also need to make sure that the framework you are using supports GPU acceleration (not all of them do) and that the performance increase is significant.

like image 43
Matthew Avatar answered Sep 23 '22 21:09

Matthew