GPU support in IronWorker
In the past few months, we've spoken to quite a few customers that have added Machine Learning (ML) tasks into IronWorker. The problem is, these tasks can take a significant amount of time on a CPU vs a GPU. GPU's were built to handle the parallelization of complex matrix/vector operations that gaming required, and it so happens that deep learning exercises also have similar requirements.
Achieve Cloud Elasticity with Iron
Speak to us to find how you can achieve cloud elasticity with a serverless messaging queue and background task solution with free handheld support.
That said, we thought it was about time to add GPU support to IronWorker. We started with a simple test of doing image recognition via TensorFlow. After hacking the example python script to add the ability to download an image via a URL, we zipped up the script and uploaded it to IronWorker. We went ahead and used the latest Tensorflow docker image.
> zip classify_image.zip classify_image.py
> iron worker upload --zip classify_image.zip --name classify_image tensorflow/tensorflow:latest-gpu python classify_image.py --image_url "https://www.petfinder.com/wp-content/uploads/2012/11/91615172-find-a-lump-on-cats-skin-632x475.jpg"
In this initial push, we released support for the g2, g3 and p2 GPU instances on AWS. Once we fired off that task, here's what things look like on our end:
Iron.io Serverless Tools
Speak to us to learn how IronWorker and IronMQ are essential products for your application to become cloud elastic.
It took about 10 seconds of run time for the image classification via IronWorker using a p2.xlarge instance on AWS. We didn't have a chance to run this against a non-GPU instance, but we'll leave that as an exercise for the reader. We're pretty sure it will take a little longer than 10 seconds! The actual output from the script is as follows:
Found device 0 with properties:
name: Tesla K80
major: 3 minor: 7 memoryClockRate (GHz) 0.8235
Total memory: 11.17GiB
Free memory: 11.10GiB
Egyptian cat (score = 0.60871)
tabby, tabby cat (score = 0.12714)
lynx, catamount (score = 0.07766)
tiger cat (score = 0.07641)
cougar, puma, catamount, mountain lion, painter, panther, Felis concolor (score = 0.00148)
We'll be working closely with a few customers in the coming months on some large ML/AI projects, and we'll post as much as we can on their use cases and resulting benchmarks. As ML becomes more and more prominent in Business Intelligence operations, we're expecting to see a big increase in GPU usage. If you have any questions about our GPU support, drop us a line and we'd be happy to chat.
Related Reading: Top 10 uses of ironworker
Unlock the Cloud with Iron.io
Find out how IronWorker and IronMQ can help your application obtain the cloud with fanatical customer support, reliable performance, and competitive pricing.
Leave a Comment