How to learn deep learning on the cheap

How to learn deep learning on the cheap

Deep learning is something that needs a discrete graphics card. Running deep learning programs on a CPU is just too slow, it can take days upon days to run even the most basic deep learning programs on a CPU.

Also, CUDA by NVIDIA is what's most often used, so if you're on a MacBook, you're out of luck because they use AMD graphics cards which do not support CUDA.

If you're buying a graphics card, its always better to invest a little more to get a better card, because you'll be using this card for a year at least, and your choice of card can limit which algorithms you can run and what kind of datasets you can load.

But what if you don't want to invest hundreds of dollars into getting a graphics card, or you don't have a desktop you could plug one into?

The cloud comes to the rescue! You can rent GPUs by the hour in the cloud, on AWS, Paperspace, and a couple others, but the most cost effective option I've found so far is vast.ai.

You can rent on-demand or interruptible cards from vast.ai (interruptible being equivalent to AWS Spot instances).

Screen-Shot-2019-01-31-at-4.54.26-PM

You can rent a machine with 2xGTX 1080 Ti cards for $0.282/hr, on demand.

A brand new GTX 1080 Ti will run you close to $1000. You should be able to find used ones for $500. So two cards will run between $1000 to $2000. But if you're buying a card, you also need to factor in electricity costs, because boy do these cards use a lot of power.

Screen-Shot-2019-01-31-at-4.57.43-PM

We can assume a card will use ~270 watts of power every hour. 270x2 = 540.
The average cost of electricity in my country (India) is 10INR ($0.14 per hour) per KwH, so lets take the hourly running cost at 5INR.

For the cost of two graphics cards, you could rent an equivalent machine from vast.ai for 3540 hours (close to 5 months). That's 5 months of non-stop usage.

Obviously you'll need to do your own calculations here to see what makes sense for you, but if you're just starting out, using the renting approach lets you scale down the cards and pay lower rates or scale up the cards depending on your needs, and you only pay for the cards when you're using them.