From 836921e616ee20a8f4077d989b9dfb2e8bc82ff2 Mon Sep 17 00:00:00 2001 From: aitbc Date: Thu, 14 May 2026 16:33:37 +0200 Subject: [PATCH] Fix PyCUDA initialization to handle nodes without CUDA-capable devices - Catch RuntimeError from cuda.init() when no GPU is available - Allow coordinator-api to start on nodes without GPUs (simulation mode) - gitea-runner node doesn't have GPU, needs simulation mode fallback --- .../trading/services/trading_marketplace/gpu_optimizer.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/coordinator-api/src/app/contexts/trading/services/trading_marketplace/gpu_optimizer.py b/apps/coordinator-api/src/app/contexts/trading/services/trading_marketplace/gpu_optimizer.py index 55f6976f..24f35b6e 100755 --- a/apps/coordinator-api/src/app/contexts/trading/services/trading_marketplace/gpu_optimizer.py +++ b/apps/coordinator-api/src/app/contexts/trading/services/trading_marketplace/gpu_optimizer.py @@ -19,13 +19,15 @@ from aitbc import get_logger # Try to import pycuda, fallback if not available try: import pycuda.driver as cuda + # Try to initialize CUDA - will fail if no GPU available + cuda.init() import pycuda.autoinit from pycuda.compiler import SourceModule CUDA_AVAILABLE = True -except ImportError: +except (ImportError, Exception) as e: CUDA_AVAILABLE = False logger = get_logger(__name__) - logger.warning("PyCUDA not available. GPU optimization will run in simulation mode.") + logger.warning(f"PyCUDA not available or no CUDA-capable device detected: {e}. GPU optimization will run in simulation mode.") logger = get_logger(__name__)