Compare Serverless GPU Plans for LLM Hosting

Compare GPU support, worker limits, idle billing, and sustained-use controls for LLM workloads, including RunPod's prepaid-credit rules.

Compare serverless GPU plans for llm hosting by verifying whether GPU execution is actually available, when a worker becomes billable, which runtime and concurrency limits apply, and how sustained traffic is metered. A headline compute rate is not comparable if plans include different startup, idle, or billing units. Build the comparison from current provider documentation and your own quote, then validate the selected plan against your model and traffic pattern.

Decisions that shape llm hosting costs

Before comparing totals, put every candidate into the same worksheet. These are planning fields, not vendor API keys:

MODEL = YOUR_VALUE
GPU_TYPE = YOUR_VALUE
MODEL_OR_CONTAINER_SIZE = YOUR_VALUE
EXPECTED_PEAK_CONCURRENCY = YOUR_VALUE
MAXIMUM_REQUEST_DURATION = YOUR_VALUE
IDLE_POLICY = YOUR_VALUE
PERSISTENCE_REQUIREMENT = YOUR_VALUE
RATE_AND_UNIT = YOUR_VALUE

Fill each field from the provider’s current product, quota, and billing documentation or from your own quote.

  • Deployment fit: Confirm the accelerator model, available VRAM, and model or container size.
  • Workload shape: Record model-loading time, request duration, concurrency, queueing behavior, and payload size.
  • Cost boundary: Look for separate charges for startup, execution, idle capacity, storage, data transfer, subscriptions, and credits.
  • Administrative controls: Check payment requirements, prepaid balances, spending limits, credit-refund rules, and persistence when resources stop.

Treat any free tier or promotional credit as unverified until the provider’s current page explicitly defines its eligibility and remaining charges.

RunPod: calculate the whole worker lifetime

RunPod’s Serverless pricing documentation says billing begins when a worker starts, continues until it fully stops, and is rounded up to the next second. Its billable phases include startup, execution, and idle timeout; startup covers container initialization and model loading into GPU memory, while the documented default idle timeout is 5 seconds. Cost each worker lifetime rather than counting generation time alone.

RunPod’s endpoint settings document defaults of 0 active workers, 3 maximum workers, a 5-second idle timeout, a 600-second execution timeout, a 24-hour job TTL, and FlashBoot enabled. Active workers are charged continuously, including while idle; an execution timeout can range from 5 seconds to 7 days, and exceeding it fails the job and stops the worker. Job TTL starts at submission rather than execution, FlashBoot retains worker state after spin-down and works best with consistent traffic, and RunPod suggests setting maximum workers about 20% above expected peak concurrency.

For request-count scaling, the documented target is:

Math.ceil((requestsInQueue + requestsInProgress) / scalerValue)

RunPod documents scalerValue as 1 for maximum responsiveness and recommends this scaling method for LLM workloads or frequent short requests.

RunPod’s billing overview uses prepaid credits, with usage deducted from the deposited balance. Compute and storage are billed per second, data transfer has no listed fee, and the billing job runs every 5 minutes. Credits are non-refundable and cannot be withdrawn. The overview also warns that a depleted balance stops running Pods, data on Pods without a network volume cannot be recovered, and network-volume storage continues accruing charges while Pods are stopped. Its published default account-wide spending limit is $80 per hour across all resources; that provider figure was checked on 2026-10-01 and may change.

Google Cloud Run: separate GPU startup from model readiness

Google’s Cloud Run GPU documentation lists the NVIDIA RTX PRO 6000 Blackwell with 96 GB VRAM and NVIDIA L4 with 24 GB VRAM. It also says GPU services can scale to zero. For instances with pre-installed drivers, Google states that startup takes approximately 5 seconds before model loading; this published figure was checked on 2026-10-01 and may change, and it is not a model response-time measurement.

For a cost comparison, obtain the current rate for the selected GPU and service configuration. Keep platform startup, model loading, request execution, and scale-to-zero behavior in separate worksheet rows rather than treating the driver-start figure as end-to-end application latency.

Amazon SageMaker: establish the GPU boundary first

Amazon SageMaker AI’s Serverless Inference documentation explicitly states that Serverless Inference does not support GPUs. It is therefore a non-GPU comparator for this decision, not a substitute GPU rate or GPU capacity plan.

The same service documentation says on-demand Serverless Inference scales to zero when no requests are arriving. It also says cold-start time depends on model size, model-download time, and container startup, with the CloudWatch OverheadLatency metric used to track that overhead. A real-time endpoint cannot be converted into a serverless endpoint, so do not use one endpoint model’s scaling or billing boundary as if it were interchangeable with the other.

Modal: separate billing mechanics from the GPU quote

Modal’s billing documentation requires a payment method on file. It bills for compute used or requested, does not require reservations, and has no minimum usage-time increments. Workspaces are billed monthly and automatically charged at the end of each cycle. Incremental usage can be charged during the cycle when specified thresholds are exceeded, while credits and subscription fees enter the cycle calculation.

Those billing mechanics do not settle a GPU choice for this comparison. Check Modal’s current resource and pricing documentation for the exact accelerator, billing unit, startup and idle behavior, concurrency ceiling, and storage charge, then enter those values into the same worksheet used for the other providers.

Put every plan into the same cost formula

Use the following as worksheet notation, not as provider API commands:

billable_worker_seconds = ROUND_UP_TO_NEXT_SECOND(
  start_seconds + execution_seconds + idle_seconds
)

runpod_worker_charge = billable_worker_seconds * YOUR_VALUE

modal_cycle_total = usage_charges + incremental_usage_charges + subscription_fee - credits

comparison_total = compute_charges + storage_charges + other_documented_line_items - credits

Apply the worker calculation separately to every billable worker lifetime, then add storage and other documented charges. Fill YOUR_VALUE only from the selected plan’s current quote or billing page. Do not convert a monthly storage figure, per-second compute charge, or subscription fee into an assumed common unit unless the provider documents that conversion.

Verify the plan before a sustained workload

The billing and quota documentation does not define a universal deployment command or endpoint for every option. After selecting a candidate, use its current deployment guide and verify the following in a non-production environment:

  • Record the exact model artifact, container, runtime, GPU type, and endpoint configuration.
  • Measure a request after an idle period and a request against an already-running worker. Log platform startup, model loading, queueing, execution, and total response time separately.
  • Apply your expected traffic peaks and confirm that queueing, concurrency, execution timeout, and job-lifetime settings behave as documented.
  • Reconcile worker start and stop timestamps with the provider meter. Confirm that startup, execution, idle retention, and storage appear in the expected billing lines.
  • Review low-balance, stopping, data-persistence, credit, and refund controls before moving the workload to production.
  • Repeat the check with representative prompts and response sizes; a successful health response alone does not validate model readiness or billing behavior.

Where comparisons usually go wrong

The most common errors are straightforward:

  • Treating every serverless inference service as GPU-capable.
  • Comparing raw rates while ignoring their billing units or minimum increments.
  • Counting only model execution while omitting initialization or retained workers.
  • Assuming scale-to-zero, prepaid credit, or a promotional allowance means no continuing charge or refund right.
  • Testing only isolated requests and ignoring sustained concurrency, queue delay, and timeout behavior.

Nothing was deployed or benchmarked for this article. These steps are compiled from the official documentation linked in the text and should be checked against the current version before use.

Sources