Instead of c10::Allocator to make it more compatible with torch.accelerator APIs, that route all torch.accelerator.memory_* cals thru at::getDeviceAllocator, which does
dynamic_cast<DeviceAllocator*>(c10::GetAllocator(device)).
Test Plan:
python -c "import torch;x = torch.rand(1024, 1024, device='mps');...