From 24dec167449e66aa61b6f295a516fde8feb76b3a Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 1 Aug 2026 16:06:15 +0200 Subject: [PATCH] Pin Tower-compatible CUDA runtime --- backend/tests/test_docker_runtime_config.py | 10 +++++----- deploy/unraid/Dockerfile.all-in-one | 6 +++--- docs/CODEX_EXECUTION_LOG.md | 1 + docs/DEPENDENCY_POLICY.md | 6 ++++-- frontend/src/components/auth/LandingPage.tsx | 4 ++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/backend/tests/test_docker_runtime_config.py b/backend/tests/test_docker_runtime_config.py index acc8c66e..b29d730d 100644 --- a/backend/tests/test_docker_runtime_config.py +++ b/backend/tests/test_docker_runtime_config.py @@ -388,7 +388,7 @@ def test_backend_docker_context_contains_gis_import_smoke_script() -> None: assert (ROOT / "backend" / "scripts" / "gis_import_smoke.py").exists() -def test_all_in_one_dockerfile_caches_dependencies_and_uses_cpu_torch_for_ai_runtime() -> None: +def test_all_in_one_dockerfile_caches_dependencies_and_pins_driver_compatible_cuda_torch() -> None: dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8") metadata_copy_index = dockerfile.index("COPY backend/pyproject.toml /app/") @@ -398,9 +398,9 @@ def test_all_in_one_dockerfile_caches_dependencies_and_uses_cpu_torch_for_ai_run smoke_index = dockerfile.index("RUN python scripts/gis_import_smoke.py") assert metadata_copy_index < placeholder_readme_index < dependency_install_index < backend_copy_index < smoke_index - assert "GEOINTEL_TORCH_INDEX_URL=https://download.pytorch.org/whl/cu130" in dockerfile - assert "GEOINTEL_TORCH_VERSION=2.13.0" in dockerfile - assert "GEOINTEL_TORCHVISION_VERSION=0.28.0" in dockerfile + assert "GEOINTEL_TORCH_INDEX_URL=https://download.pytorch.org/whl/cu128" in dockerfile + assert "GEOINTEL_TORCH_VERSION=2.11.0" in dockerfile + assert "GEOINTEL_TORCHVISION_VERSION=0.26.0" in dockerfile assert '--index-url "$GEOINTEL_TORCH_INDEX_URL"' in dockerfile @@ -432,4 +432,4 @@ def test_unraid_ai_runtime_requests_nvidia_and_fails_closed() -> None: assert 'YOLO_DEVICE="${YOLO_DEVICE:-cuda:0}"' in run_script assert 'YOLO_REQUIRE_CUDA="${YOLO_REQUIRE_CUDA:-true}"' in run_script assert '-e YOLO_REQUIRE_CUDA="$YOLO_REQUIRE_CUDA"' in run_script - assert "https://download.pytorch.org/whl/cu130" in dockerfile + assert "https://download.pytorch.org/whl/cu128" in dockerfile diff --git a/deploy/unraid/Dockerfile.all-in-one b/deploy/unraid/Dockerfile.all-in-one index ceaf04de..a428be8f 100644 --- a/deploy/unraid/Dockerfile.all-in-one +++ b/deploy/unraid/Dockerfile.all-in-one @@ -9,9 +9,9 @@ RUN npm run build FROM postgres:16-bookworm AS runtime ARG GEOINTEL_INSTALL_AI=false -ARG GEOINTEL_TORCH_INDEX_URL=https://download.pytorch.org/whl/cu130 -ARG GEOINTEL_TORCH_VERSION=2.13.0 -ARG GEOINTEL_TORCHVISION_VERSION=0.28.0 +ARG GEOINTEL_TORCH_INDEX_URL=https://download.pytorch.org/whl/cu128 +ARG GEOINTEL_TORCH_VERSION=2.11.0 +ARG GEOINTEL_TORCHVISION_VERSION=0.26.0 ARG GEOINTEL_ULTRALYTICS_VERSION=8.4.99 ARG GEOINTEL_SETUPTOOLS_VERSION=83.0.0 ARG GEOINTEL_WHEEL_VERSION=0.47.0 diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index 0dcc1375..bdf734c8 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -12230,3 +12230,4 @@ Open: ### Verificatie - TypeScript- en Vite-productiebuild geslaagd. - Gerichte frontend-, backend-, browser- en productieverificatie volgen hieronder na de releasegate. +- De eerste productieacceptatie vond een echte CUDA-compatibiliteitsregressie: `torch 2.13.0+cu130` zag de RTX 4080 SUPER maar weigerde initialisatie op de Tower-driver met CUDA 12.9-capaciteit. De AI-image is daarom teruggebracht naar de expliciet gepinde, drivercompatibele combinatie `torch 2.11.0` / `torchvision 0.26.0` via de officiële CUDA 12.8-index; promotie vereist opnieuw live `torch.cuda.is_available()` en modelpreflight. diff --git a/docs/DEPENDENCY_POLICY.md b/docs/DEPENDENCY_POLICY.md index c4bcd8c9..1c0c323e 100644 --- a/docs/DEPENDENCY_POLICY.md +++ b/docs/DEPENDENCY_POLICY.md @@ -46,12 +46,14 @@ not be installed by the default Docker backend image unless an explicit AI image or profile is introduced later. The opt-in Unraid all-in-one AI build is NVIDIA-GPU-oriented. It installs the -pinned PyTorch/torchvision pair from the CUDA 13.0 wheel index before installing +pinned PyTorch/torchvision pair from the CUDA 12.8 wheel index before installing the `ai` extra. The production runtime exposes the NVIDIA device, selects `YOLO_DEVICE=cuda:0` and sets `YOLO_REQUIRE_CUDA=true`, so missing CUDA fails closed instead of silently falling back to CPU. The index and versions remain explicit Docker build arguments and require live driver/runtime validation on -Tower before release promotion. +Tower before release promotion. CUDA 12.8 is deliberately below the Tower +driver's reported CUDA 12.9 capability; a newer wheel index may not be promoted +merely because it exists when `torch.cuda.is_available()` fails on that driver. Docker dependency metadata is copied before application source. Backend source changes therefore reuse the dependency layer while changes to `pyproject.toml` diff --git a/frontend/src/components/auth/LandingPage.tsx b/frontend/src/components/auth/LandingPage.tsx index 1ef49a23..cba221e0 100644 --- a/frontend/src/components/auth/LandingPage.tsx +++ b/frontend/src/components/auth/LandingPage.tsx @@ -237,7 +237,7 @@ export function LandingPage({

Veilige toegang

Open de GeoIntel-workbench

- Meld u aan als operator of start een beperkte demosessie. + Meld u aan als operator of start een projectgebonden demosessie met volledige analysetoegang.
@@ -301,7 +301,7 @@ export function LandingPage({
Gastmodus -

Open een tijdelijke, alleen-lezen demowerkruimte met voorbeelddata en een vooraf uitgevoerde kwaliteitscontrole.

+

Gebruik dezelfde modellen, analyses en downloads als een gebruiker. Alleen beheer, instellingen en uploads blijven afgeschermd.