class_docstr: Private class defines non-distributed computation model for code compatibility with other distributed models.
class_docstr_tok: ["Private","class","defines","non-distributed","computation","model","for","code","compatibility","with","other","distributed","models","."]
code: def device(self) -> torch.device:
      if torch.cuda.is_available():
          return torch.device("cuda")
      if _torch_version_le_112 and torch.backends.mps.is_available():
          return torch.device("mps")
      return torch.device("cpu")
  
imports: from abc import ABCMeta, abstractmethod
  from numbers import Number
  from typing import Any, Callable, cast, List, Optional, Union
  import torch
  from packaging.version import Version
label_desc: Use image node_id 8 for calling the _SerialModel obj's underlying member method code with example usage: obj.device() and returns: torch, torch, torch