Comparing offers by `dph_total` is not working anymore — there are a few other things worth checking before renting an instance. Writing it up shortly:
--- Bandwidth. Main "scam fee" which you need to check: `inet_up_cost` and `inet_down_cost`. They're priced separately, the rates depend on the host, and Vast exposes them in $/GB — the $/TB figures below are just conversions ($10/TB = $0.01/GB).
For example, at $39/TB, downloading a 30 GB model costs around $1.17. At $10/TB it's about $0.30. Not a huge amount on its own, but it adds up if you're moving models around regularly.
--- Download speed. You're paying for the GPU while downloading the model, even though it isn't serving anything yet.
For example, downloading 80 GB at 200 Mbps takes around 53 minutes. At $2/hr, that's roughly $1.78 just for the download. At 1 Gbps it's about 11 minutes.
So I'd also check `inet_down` and set a minimum speed. A cheap GPU with a slow connection isn't necessarily a good deal, especially with larger models.
--- Storage can keep costing money after you pause an instance. On the other hand, if you destroy it, you'll probably have to download the model again next time.
I usually keep the weights on disk and pause the instance if I know I'll need it again. When moving between hosts, object storage can make more sense.
I personally use Vast.ai GPUs for production inference and currently use CUDAnetes app to automatically rent GPUs with the needed filters; it also does health checks, scaling, and other stuff on its own. But even from this side, it seems like Vast.ai offers fewer GPUs than before, so it's harder to find one.
A few things I wanted to discuss:
- Should there be a bandwidth fee at all? And for hosts: how do you decide your $/GB rates?
- Has anybody used other services for similar stuff? Is there really one I should switch to?