class_docstr: Allocates the covariance matrix on distributed devices, e.g. multiple GPUs.
  
  Args:
      base_kernel: Base kernel to distribute
      device_ids: list of `torch.device` objects to place kernel chunks on
      output_device: Device where outputs will be placed
class_docstr_tok: ["Allocates","the","covariance","matrix","on","distributed","devices",",","e.g",".","multiple","GPUs",".","Args",":","base_kernel",":","Base","kernel","to","distribute","device_ids",":","list","of","`","torch.device","`","objects","to","place","kernel","chunks","on","output_device",":","Device","where","outputs","will","be","placed"]
code: def num_outputs_per_input(self, x1, x2):
      return self.base_kernel.num_outputs_per_input(x1, x2)
  
file_path: gpytorch/gpytorch/kernels/multi_device_kernel.py
imports: from typing import List, Optional
  import torch
  from linear_operator import to_linear_operator
  from linear_operator.operators import CatLinearOperator
  from torch.nn.parallel import DataParallel
  from ..None import settings
  from .kernel import Kernel
label_desc: Use image node_id 5 for calling the MultiDeviceKernel obj's underlying member method code with example usage: obj.num_outputs_per_input(x1, x2) and returns: self