Amazon AWS EC2 Blender Rendering Times And Prices
TL;DR
For about twenty cents, I can render a Blender image in two minutes on an Amazon EC2 "g5.12xlarge" cloud computer that would take nineteen minutes to render on my peronal machine.
Overview
I've recently started getting into blender. I was more than a little put off by the amount of time it takes to render an image. Looking around for options I found some online render farm services. They seem geared more toward animation and their prices are hard to figure out. Actually trying them seems to be the only way I'll be able to figure out the prices.
In the mean time, I ran some tests on Amazon AWS EC2 cloud computer instances to see how fast they can render and how much it would cost. After going through the various GPU based configurations I ended up with this chart:
The the blue MacBookPro and NVIDIA 1080 bars represent my personal machines. The green bars are the best values from the Amazon EC2 offerings.
I wouldn't be surprised to find that one of the dedicated rendering farms is less expensive, but these's prices aren't bad for the time savings. If I find that the cost is better on the AWS EC2 side, I'll some scripts to help automate the process and do a full write up on how to use the service.
Draft Notes (In No Particular Order)
- These times are for rendings of the loft file from the Blender cycles demo files on Amazon AWS EC2 instances. You can download it and time a render to do a comparison
- I'm not interested in animation at this point. Just still frames. So this look at the serivces is in that light
- The renders were done with 'CUDA' on the windows machine and EC2 instances and 'METAL' for the mac
- My 2021 M1 Max MacBookPro (model 18.4) with 64GB of memory and windows machine with a NVIDIA GTX 1080 card in it are also listed as 'MBP' and '1080' respectively
- The prices are based on On-Demand usage at the time I ran them
- The octanebench score on my windows machine is 135.33.
- I tried to run octanebench on my mac but it says no supported GPU is found
- The methodology was to do three renders of the file. The longest time was thrown out and the other two were averaged
- The raw results are here
- The prices do not include startup and shutdown times for the EC2 instances. That cost would need to be calculated based on the use case
- There will also be some cost for the first time you setup a machine to get all the installs in place. (An AMI could take care of that aspect though)
- You have to request quota updates to get access to the 'p' and 'g' type instances. As of press time, this is the page to request quota increases. Search for 'demand'. Then put in requests for 'Running On-Demand G and VT instances' and 'Running On-Demand P instances'. The biggest machine 'p' instance is 96 vCPU and the biggest 'g' is 192. They didn't give me the 192 max on the 'g' instances the first time I asked.
- The p4d.24xlarge was not available in `us-east-1a` when i tested. (TODO confirm if you did `1b`, `1c`, or `1d` based off the error message
- I looked at garagefarm.net and from what I can tell from their pricing calculator the minumum chart is $1.
- The time from garagefarm said 0h 0min. So, not sure how long it would actually take.
- The blendergrid.com pricing calculor isn't much help with single frame setups and doesn't look like it's working right for me. I adjusted the number of notes from 5 to 50 and the price didn't change which seems weird. ,
- render steet estimate: $1.09 - finishing in 1-2 hours. These places seem to be much more about animations than single frames.
- You could have some hitches starting and stopping the machines. It looks like the system that keeps track of the number of vCPUs you have running isn't updated live. I've had cases where I've shut an instance down then tried to start it back a minute or so later and couldn't because it said I hit the vCPU limit. After waiting a bit, it fixed itself and I could launch again
- Sometimes you get an error like this if there isn't enough capacity on the AWS site: An error occurred (InsufficientInstanceCapacity) when calling the RunInstances operation (reached max retries: 2): We currently do not have sufficient p3.8xlarge capacity in the Availability Zone you requested (us-east-1c). Our system will be working on provisioning additional capacity. You can currently get p3.8xlarge capacity by not specifying an Availability Zone in your request or choosing us-east-1b, us-east-1d, us-east-1f.
- I had a bunch of problems with the g4dn.metal instance not wanting to start and seeming to hang. Could have been something with my script. Just not sure what happened.
- I tested most of the avaialble EC2 instances that have graphics cards. I filtered the data down to the set above based on the cost and time spent. The full dataset is in the repo if you'd like to dig into it.
- I ran all these tests with `CUDA`. I didn't do any with `CUDA+CPU` or the other rendering options. There may be some additional savings there, but worst case you get what's above.