CPU and GPU segmentation ======================== The Omnipose wrapper calls ``cellpose_omni.core.use_gpu()`` to select GPU use. When a usable CUDA GPU is unavailable, the normal workflow uses the CPU. Other analysis stages use NumPy, SciPy, image processing, and plotting libraries; the segmentation GPU setting does not move the entire pipeline onto a GPU. Check the notebook environment ------------------------------ .. code-block:: python import sys import torch print(sys.executable) print(torch.__version__) print("CUDA available:", torch.cuda.is_available()) The wrapper prints ``GPU activated?`` when initialized. A first segmentation run can require a model download. Reusing masks does not require a segmentation model download. Optional acceleration --------------------- Start with the CPU installation, then choose a compatible PyTorch build for the actual NVIDIA driver and GPU. Consult the official `PyTorch installer `_ and `Omnipose GPU guidance `_. An optional Windows setup uses Python 3.10, an RTX A6000, PyTorch ``2.7.1+cu118`` and torchvision ``0.22.1+cu118``. Select versions compatible with your own GPU and driver. Restart the notebook kernel after changing PyTorch. If CUDA is unavailable, check the interpreter, installed PyTorch build, and driver compatibility. A ``False`` CUDA check by itself does not prevent CPU segmentation. See :doc:`../workflow/segmentation` for the actual wrapper settings.