akoulapure's picture
Initial Deployment: Best ViT Model
228add1 verified
Raw
History Blame Contribute Delete
1.21 kB
"""
Device detection and management utilities.
"""
import torch
def get_device(prefer_mps: bool = True) -> torch.device:
"""
Auto-detect the best available device.
Priority: CUDA > MPS (Apple Silicon) > CPU
"""
if torch.cuda.is_available():
device = torch.device('cuda')
print(f"Using CUDA: {torch.cuda.get_device_name(0)}")
elif prefer_mps and hasattr(torch.backends, 'mps') and torch.backends.mps.is_available():
device = torch.device('mps')
print("Using Apple MPS (Metal Performance Shaders)")
else:
device = torch.device('cpu')
print("Using CPU")
return device
def get_device_info() -> dict:
"""Return device information as a dictionary."""
info = {
'cuda_available': torch.cuda.is_available(),
'mps_available': hasattr(torch.backends, 'mps') and torch.backends.mps.is_available(),
'device': str(get_device()),
}
if torch.cuda.is_available():
info['cuda_device_name'] = torch.cuda.get_device_name(0)
info['cuda_device_count'] = torch.cuda.device_count()
info['cuda_memory_gb'] = round(torch.cuda.get_device_properties(0).total_mem / 1e9, 2)
return info