From 1fbca0415d1457424324e5f4b9900315a0666915 Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Fri, 9 Aug 2024 10:18:56 +0200
Subject: [PATCH] Always enable WorkerRun.use_gpu on versions requiring GPUs

---
 arkindex/process/migrations/0037_workerrun_use_gpu.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arkindex/process/migrations/0037_workerrun_use_gpu.py b/arkindex/process/migrations/0037_workerrun_use_gpu.py
index a8de2b3621..35a769e410 100644
--- a/arkindex/process/migrations/0037_workerrun_use_gpu.py
+++ b/arkindex/process/migrations/0037_workerrun_use_gpu.py
@@ -8,9 +8,11 @@ from arkindex.process.models import FeatureUsage
 
 def migrate_gpu_usage(apps, schema):
     WorkerRun = apps.get_model("process", "WorkerRun")
-    WorkerRun.objects.filter(
-        version__gpu_usage__in=(FeatureUsage.Required, FeatureUsage.Supported), process__use_gpu=True
-    ).update(use_gpu=True)
+    # For versions that require GPUs, WorkerRuns should always use a GPU.
+    WorkerRun.objects.filter(version__gpu_usage=FeatureUsage.Required).update(use_gpu=True)
+    # For versions that support GPUs, only use a GPU on processes where GPU usage was enabled.
+    # This replicates the previous behavior with process-wide GPU usage.
+    WorkerRun.objects.filter(version__gpu_usage=FeatureUsage.Supported, process__use_gpu=True).update(use_gpu=True)
 
 def reverse(apps, schema):
     Process = apps.get_model("process", "Process")
-- 
GitLab