This is possibly intentional?
Using LoggingTensor,
x = LoggingTensor(torch.empty([]))
print(x.device)
# prints "meta"
The extension writer can add a .device attribute to their class (LoggingTensor) to solve the problem in Python-land but it doesn't solve the problem in C++ land. In C++ land x.options() will return a meta device and there is code like toType that will use the device to do things.
cc @ezyang @bdhirsh