From c76a6b986a0c3ab86cf067fb0328e805068affd4 Mon Sep 17 00:00:00 2001 From: Joe Corall Date: Tue, 19 Nov 2024 15:53:50 -0500 Subject: [PATCH] add gpu support (#22) --- main.tf | 7 ++++--- modules/cloudrun/main.tf | 17 +++++++++++------ modules/cloudrun/variables.tf | 1 + 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/main.tf b/main.tf index e8b8aff..32bbca8 100644 --- a/main.tf +++ b/main.tf @@ -11,7 +11,7 @@ terraform { } google = { source = "hashicorp/google" - version = "5.29.1" + version = "6.11.2" } } @@ -88,10 +88,11 @@ module "whisper" { image = "us-docker.pkg.dev/${var.project}/shared/scyllaridae-whisper:main", port = 8080 liveness_probe = "/healthcheck" - memory = "4Gi" - cpu = "4000m" + memory = "16Gi" + gpus = 1 } ]) + regions = ["us-central1"] providers = { google = google.default docker = docker.local diff --git a/modules/cloudrun/main.tf b/modules/cloudrun/main.tf index 5b90d33..15125f0 100644 --- a/modules/cloudrun/main.tf +++ b/modules/cloudrun/main.tf @@ -6,7 +6,7 @@ terraform { } google = { source = "hashicorp/google" - version = "= 5.29.1" + version = "= 6.11.2" } } } @@ -45,7 +45,7 @@ resource "google_cloud_run_service" "cloudrun" { "run.googleapis.com/execution-environment" : "gen2", "autoscaling.knative.dev/minScale" : var.min_instances, "autoscaling.knative.dev/maxScale" : var.max_instances, - "run.googleapis.com/cpu-throttling" : true, + "run.googleapis.com/cpu-throttling" : var.containers[0].gpus == "", } } spec { @@ -99,10 +99,15 @@ resource "google_cloud_run_service" "cloudrun" { } resources { - limits = { - cpu = containers.value.cpu - memory = containers.value.memory - } + limits = merge( + { + memory = containers.value.memory + }, + containers.value.gpus != "" ? { + "nvidia.com/gpu" = containers.value.gpus + } : { cpu = containers.value.cpu + } + ) } } } diff --git a/modules/cloudrun/variables.tf b/modules/cloudrun/variables.tf index 9344132..76966fb 100644 --- a/modules/cloudrun/variables.tf +++ b/modules/cloudrun/variables.tf @@ -56,6 +56,7 @@ variable "containers" { memory = optional(string, "512Mi") cpu = optional(string, "1000m") liveness_probe = optional(string, "") + gpus = optional(string, "") })) }