8f41105e4b
- added logging in UI - added switcher for models, batch size etc. - added device configuration dataclass - minor improvements in audio transcription
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
import torch
|
|
from dataclasses import dataclass
|
|
import logging
|
|
|
|
def check_torch(logger: logging.Logger) -> None:
|
|
logger.info("=== Checking PyTorch ===")
|
|
logger.info(f"Torch version: {torch.__version__}")
|
|
|
|
# === NVIDIA / AMD (CUDA API) ===
|
|
if torch.cuda.is_available():
|
|
backend = "CUDA"
|
|
if torch.version.hip is not None:
|
|
backend = "ROCm (AMD HIP)"
|
|
|
|
logger.info(f"{backend} backend is available")
|
|
logger.info(f"Compiled with: CUDA {torch.version.cuda}, ROCm {torch.version.hip}")
|
|
logger.info(f"Number of devices: {torch.cuda.device_count()}")
|
|
|
|
for i in range(torch.cuda.device_count()):
|
|
logger.info(f"GPU {i}: {torch.cuda.get_device_name(i)}")
|
|
|
|
# === Apple Silicon (MPS) ===
|
|
elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
|
|
logger.info("MPS backend is available (Apple Silicon)")
|
|
logger.info(f"MPS version: {getattr(torch.backends.mps, '__version__', 'unknown')}")
|
|
logger.info("GPU: Apple Silicon (Metal)")
|
|
|
|
# === CPU only mode ===
|
|
else:
|
|
logger.info("Only CPU is available")
|
|
|
|
logger.info("=== Check completed ===")
|