Serious number crunching on Amazon Web Services
March 14, 2017 — March 16, 2017
I want to do cloud machine learning.
Let’s try this on Amazon Web Services and see what’s awful.
1 Run through
See How is machine learning on AWS awful this week?, based on my wistful belief in the Keras run-through.
2 Amazon Machine Images
AWS has launched modern DL VMs at last:
The AWS Deep Learning AMI, now available on AWS Marketplace, lets you run deep learning in the Cloud, at any scale. Launch instances of pre-installed, open source deep learning frameworks, including Apache MXNet, to train sophisticated, custom AI models, experiment with new algorithms, and learn new deep learning skills and techniques. The AWS Deep Learning AMI lets you create managed, auto-scaling clusters of GPUs for large-scale training, or run inference on trained models using the latest versions of MXNet, TensorFlow, Caffe, Theano, Torch, and Keras. With the addition of an Ubuntu version, you have the choice to run on the operating system of your choice. There is no additional charge for the AWS Deep Learning AMI — you pay only for the AWS resources needed to store and run your applications.
NVIDIA supported Amazon Linux so GPU works but everything else is broken.
Amazon Linux based, updated-ish, so GPU drivers are outdated.
Ubuntu-based, elderly versions which claim to have GPU support, although of course the GPU versions are outdated.
Find more unsatisfying compromise choices at the “marketplace”.
3 Docker+Amazon
Docker deployment I could not be arsed working out how to do the GPU stuff.
nvidia-docker seems to work as a partial replacement for the normal docker CLI but is clearly a monstrous hack. Tensorflow seems to think that’s OK.
There are workarounds to not use the nvidia docker magicifier too
4 Incoming
- Which chipset in which thingy? See the accelerated computing machine guide
- AmazonLambda allows you to just run functions without managing machines, supporting node, java and python. This is what cloud computing was always supposed to do, to my mind.
- AmazonContainerService deploys Docker images in the same way as…
- AmazonEC2 deploys VMs. You will need a VM image —
AMI
in Amazon parlance — for which, see below. - handy utils such as s3cmd for uploading your data to Amazon S3
- How to deploy to AWS
- data analysis using AWS and spark.
- fancy spot pricing to save money