djev-run
Serves DiffusionGemma-Jev behind a compatible API on Cloud Run, with a small game demo on top.
# djev-run
Serve DiffusionGemma-Jev (`djev`) on a TypeSafe AI compatible API on Cloud Run
with an NVIDIA RTX PRO 6000 Blackwell GPU. Built on
[`mmastrac/djev-spark`](https://github.com/mmastrac/djev-spark)
([`@mmastrac`](https://x.com/mmastrac/status/2100373761195401724)) with the
Snake demo inspired by
[`mizorewww/laya-coreml`](https://github.com/mizorewww/laya-coreml).
<img width="640" height="360" alt="djev snake" src="https://github.com/user-attachments/assets/2e9a5321-f8a9-4734-b6f2-4d6f47193390" />
--------------------------------------------------------------------------------
## Deploy on Google Cloud Run
Follows
[Cloud Run GPU best practices](https://docs.cloud.google.com/run/docs/configuring/services/gpu-best-practices).
### Step 1: Upload Model to GCS
```bash
export BUCKET="your-gcs-bucket"
export REGION="us-central1" # Supported RTX PRO 6000 regions: us-central1, europe-west4, asia-southeast1, asia-south2
gcloud storage buckets create "gs://${BUCKET}" --location="${REGION}"
hf download nvidia/diffusiongemma-26B-A4B-it-NVFP4 --local-dir /tmp/dgemma
gcloud storage cp -r /tmp/dgemma/* "gs://${BUCKET}/dgemma/"
```
### Step 2: Deploy to Cloud Run
```bash
gcloud beta run deploy djev-dgemma \
--region="${REGION}" \
--image=ghcr.io/taeold/djev-run:latest \
--gpu=1 \
--gpu-type=nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--cpu=20 \
--memory=80Gi \
--no-cpu-throttling \
--concurrency=32 \
--min-instances=0 \
--max-instances=1 \
--port=8080 \
--network=default \
--subnet=default \
--vpc-egress=all-traffic \
--add-volume=name=weights,type=cloud-storage,bucket="${BUCKET}",readonly=false,mount-options=enable-buffered-read=true \
--add-volume-mount=volume=weights,mount-path=/mnt/gcs \
--startup-probe=httpGet.path=/health,