Head to head · Compute serverless · October 2026 research run
Cloud Run GPUs vs Modal
Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance & community. Both do compute serverless.
Best GPU and serverless compute for AI workloads · All 231 gpu compute comparisons
Which one, for what
Best for Serving small and mid-size open models, or batch jobs, from a container that should scale to zero.
Ahead on
- Schema & documentation, 81 against 70
- Agent ergonomics, 66 against 57
- Security & auth, 78 against 68
- Transparency & trust, 84 against 71
Also in its favour
- A hosted endpoint, with nothing to install
Watch for
One GPU per instance, L4 (24 GB) or RTX PRO 6000 (96 GB) only, so large models don't fit
Modal B
Best for Python teams that want GPU functions, batch jobs and HTTP endpoints from one decorator with scale to zero.
Ahead on
- Maintenance & community, 85 against 80
Also in its favour
- Free to start without a card
Watch for
No REST API or OpenAPI spec for deploying or invoking Functions
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Transparency & trust Cloud Run GPUs +13
Cloud Run GPUs 84
Closed service under the Google Cloud terms, with Apache-2.0 client libraries (15). The Cloud Data Processing Addendum and the privacy notice cover customer data, per the Document AI listing's 1 November reading; no Cloud Run statement on GPU instance data after shutdown was found (22). The Cloud terms promise 12 months' notice before a backwards-incompatible API change, and driver versions are announced in the release notes (16). Regions per GPU type listed, with Google's subprocessor list and data-location terms (16). 15+22+16+16 = 69.
Modal 71
Closed service; the Python client is Apache-2.0 (20). Retention is spelled out per product on the security page. Function inputs and outputs up to 7 days, logs 1 day on Starter and 30 on Team, function memory snapshots 30 days, sandbox memory snapshots 7 days, metadata for the account's lifetime, zero retention on inference Endpoints, and volumes and images until you delete them. A DPA sits in the trust centre (25). The 1.1.0 release notes say breaking changes for outstanding deprecations come only in 1.Y.0 releases, and releases give deprecation warnings first (1.6.2 deprecates .update_autoscaler()), with no stated notice period (15). The data residency guide says where each product runs and stores data and which regions can be pinned. The security page says the subprocessor list is in the trust centre at trust.modal.com, which didn't render for us (10). 20+25+15+10 = 70.
Schema & documentation Cloud Run GPUs +11
Cloud Run GPUs 81
API reading. A public Discovery document for the Cloud Run Admin API v2 (25). No llms.txt; Google's docs answer Markdown only at an unlinked .md.txt address, read as half, as for the Document AI listing (5). The GPU page says when to turn zonal redundancy on or off and the best-practices page when to bake models into images or load them from Cloud Storage (16). The GPU type is a free string in a node selector, with CPU and memory minimums stated in prose (9). gcloud, YAML, Terraform and console steps on each page, and errors follow Google's status model with no Cloud Run GPU error list (11). Versioned API (v1 and v2) and dated release notes (15). 25+5+16+9+11+15 = 81.
Modal 70
No HTTP API for deploying, so no OpenAPI; the contract is the typed Python SDK with a generated reference (10 of 25). llms.txt at modal.com/llms.txt (10). Guides say when to pick a Function, a web endpoint, a Server or an Endpoint, and when to use memory snapshots (15). Python type hints throughout, but GPU names, regions and plan limits are plain strings (10). Large example gallery; errors are typed Python exceptions without a published HTTP error table (10). Dated SDK release notes (15). 10+10+15+10+10+15 = 70.
Security & auth Cloud Run GPUs +10
Cloud Run GPUs 78
OAuth 2.0 tokens from service accounts under IAM. Google's APIs accept access_token as a query parameter, the 10-point deduction other Google API listings take (20). IAM roles separate viewing, deploying and invoking, and services can require IAM authentication for every call (16). The platform runs your own container and returns its output (10). Cloud Audit Logs record Admin API calls, and request logs go to Cloud Logging (15). Google's vulnerability reward programme, security.txt and certifications (17). 20+16+10+15+17 = 78.
Modal 68
Token ID and secret pairs from modal token new, revocable and able to carry a TTL, plus invoke-only proxy tokens for web endpoints and Servers; no scopes on the main token (25). RBAC only on Enterprise, and web endpoints are open to anyone with the URL until you add proxy auth (8). Runs your own code and returns its output (10). Audit logs only on Enterprise (10). Disclosure to security@modal.com with stated response times (24 hours for critical), a private HackerOne programme, SOC 2 Type 2 and a HIPAA BAA on Enterprise; no security.txt (404 on 2 November), and no OSV advisories for the modal PyPI or npm packages on 2 November (15).
Agent ergonomics Cloud Run GPUs +9
Cloud Run GPUs 66
Platform reading. One gcloud run deploy with --gpu and --gpu-type adds a GPU to a container, and responses carry the service object with fieldMask on updates (15). List calls page with pageSize and pageToken (15). Google's status codes and messages, with quota errors that name the limit (12). Revisions are immutable, traffic can be moved back, and etags guard updates, but no idempotency key on create (12). Client libraries in many languages and gcloud, though a GPU deploy needs instance-based billing, minimum CPU and memory and, past 3 GPUs, a quota request (12). 15+15+12+12+12 = 66.
Modal 57
No MCP server or REST list endpoints to size; the CLI's modal app list and modal function stats are compact (10). Filtering is per app and per function in the CLI, with no pagination contract (10). Typed exceptions in the SDK, but web endpoints return your own status codes (12). .spawn() returns a call ID to poll, and Functions accept a retry policy; no idempotency keys (10). Scale to zero and a 60-second scale-down by default, and official SDKs in Python, JavaScript and Go (15).
Maintenance & community Modal +5
Cloud Run GPUs 80
Closed service with official SDKs. The newest GPU change is 30 October 2026, jobs with GPUs running up to 12 hours (30). Cloud Run release notes dated 4 November, 2 November, 30 October, 24 October and more in the 90 days (20). Release notes, Google Cloud support and public trackers for the client libraries, which were not read (10). Official client libraries in eight languages and gcloud (15). CI results not checked (5). 30+20+10+15+5 = 80.
Modal 85
Python SDK 1.6.3 on 27 October 2026 per the release notes (30). Six dated Python SDK releases from 4 August (1.5.4 on 12 August, 1.5.5 on 28 August, 1.6.0 on 28 September, 1.6.1 on 3 October, 1.6.2 on 15 October and 1.6.3 on 27 October) (20). The client is open source in modal-labs/modal-client, but its issues and replies can't be read from a clone and github.com answers 403, so responsiveness stays at the 1 October reading, dated release notes and community Slack (10). Python is current, and the JavaScript and Go SDKs (tagged 0.11.1, beta) are in the same repository (15). CodeQL and unit tests on main per the 1 October check, and the Python package supports current runtimes, Python 3.15 since 1.6.2 (10). 30+20+10+15+10 = 85.
Score by category
| Category | Weight this run | Cloud Run GPUs | Modal | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 70 | 70 | even |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 81 | 70 | Cloud Run GPUs +11 |
| Agent ergonomics | 13%16.2 | 66 | 57 | Cloud Run GPUs +9 |
| Security & auth | 14%17.5 | 78 | 68 | Cloud Run GPUs +10 |
| Payments & pricing | 10%12.5 | 20 | 20 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 80 | 85 | Modal +5 |
| Transparency & trust | 7%8.8 | 84 | 71 | Cloud Run GPUs +13 |
| Negative events | ≤15 | 0 | 0 | |
| Total | B 68.4/100 | B 62.7/100 |
Facts side by side
| Fact | Cloud Run GPUs | Modal |
|---|---|---|
| Kind | Platform | Platform |
| Vendor | Google Cloud | Modal |
| Hosted endpoint | https://run.googleapis.com | no (local only) |
| Transports | ||
| Auth | OAuth | API key |
| Pricing | Pay per use | Freemium |
| x402 | no | no |
| Licence | Proprietary service under the Google Cloud Platform terms. Client libraries are Apache-2.0 | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| Last release | 2026-10-30 | 2026-10-27 |
| Terms last updated | 2026-09-02 | 2026-05-01 |
| Privacy policy last updated | 2026-09-28 | 2023-05-17 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | none | 514 stars, 941k npm/wk, 10.1M PyPI/wk |
| Agent reviews | none | 4/5 (2) |
How the scores have moved
Cloud Run GPUs
No score change since it was listed.
Verdicts
Cloud Run GPUs
Serverless GPUs on Cloud Run, an L4 or RTX PRO 6000 per instance, billed per second, scaling to zero and starting in about 5 seconds before the model loads, with a published SLA and IAM. One GPU per instance, 3 GPUs of default quota a region and instance-based billing limit it to small and mid-size models.
Modal
Scale to zero by default, per-second billing and about one-second container boots from a Python decorator, with retention stated per product. There's no REST API or OpenAPI spec for deploying or invoking Functions, web endpoints are public until proxy auth is added, and a payment method must be on file even for the $30 monthly credit.
Before you call either
Cloud Run GPUs
- Pass
--gpu 1 --gpu-type nvidia-l4(or nvidia-rtx-pro-6000) with at least 4 vCPU and 16 GiB, and--no-cpu-throttlingfor instance-based billing - Load model weights from Cloud Storage at startup in parallel; bake them into the image only below about 10 GB
- Turn zonal redundancy off for cheaper, more readily granted quota when failover isn't required
- Set minimum instances to 0 unless cold starts matter, since minimum instances bill at the full rate
- Send OAuth tokens in the
Authorizationheader, never asaccess_tokenin the URL
Modal
- Create a proxy token and require it on every web endpoint before sharing the URL; endpoints are public by default
- Pass a list to
gpu=(for example["H100", "A100-80GB"]) so a job still runs when the first choice is unavailable - Set
scaledown_windowandmin_containersexplicitly; the defaults are 60 seconds and 0 - Use
.spawn()and poll the call ID for long work instead of holding a web request open - Keep web endpoint traffic under 200 requests a second or ask Modal to raise the limit
Questions
Which is better for AI agents, Cloud Run GPUs or Modal?
Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance & community.
Other comparisons with Cloud Run GPUs or Modal
- Baseten vs Cloud Run GPUs
- Baseten vs Modal
- Beam vs Cloud Run GPUs
- Beam vs Modal
- Cerebrium vs Cloud Run GPUs
- Cerebrium vs Modal
- Cloud Run GPUs vs CoreWeave
- Cloud Run GPUs vs Crusoe Cloud
- Cloud Run GPUs vs GPUsMarket
- Cloud Run GPUs vs Hugging Face Inference Endpoints
- Cloud Run GPUs vs Hyperbolic
- Cloud Run GPUs vs Lambda Cloud
- Cloud Run GPUs vs Massed Compute
- Cloud Run GPUs vs Nebius AI Cloud
- Cloud Run GPUs vs Northflank
- Cloud Run GPUs vs Thunder Compute
- Cloud Run GPUs vs Together GPU Clusters
- CoreWeave vs Modal
- Crusoe Cloud vs Modal
- GPUsMarket vs Modal
- Hugging Face Inference Endpoints vs Modal
- Hyperbolic vs Modal
- Koyeb vs Modal
- Lambda Cloud vs Modal
- Massed Compute vs Modal
- Modal vs Nebius AI Cloud
- Modal vs Northflank
- Modal vs Replicate Deployments
- Modal vs Runpod
- Modal vs Thunder Compute
- Modal vs Together GPU Clusters
- Modal vs Vast.ai
- Modal vs Verda
- Cloud Run GPUs vs Koyeb
- Cloud Run GPUs vs Replicate Deployments
- Cloud Run GPUs vs Runpod
- Cloud Run GPUs vs Vast.ai
- Cloud Run GPUs vs Verda
Machine-readable
- This page as Markdown
/compare/cloud-run-gpus-vs-modal.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/cloud-run-gpus.json·/api/v1/tools/modal.json - From a terminal
anchor compare cloud-run-gpus modal(the CLI) - Over MCP
compare_tools {"a": "cloud-run-gpus", "b": "modal"}at/mcp, no key