class_docstr: Benchmarks runtime and error of crypten functions against PyTorch
  
  Args:
      tensor_size (int or tuple): size of tensor for benchmarking runtimes
class_docstr_tok: ["Benchmarks","runtime","and","error","of","crypten","functions","against","PyTorch","Args",":","tensor_size","(","int","or","tuple",")",":","size","of","tensor","for","benchmarking","runtimes"]
docstr: Returns plain text and crypten runtimes
docstr_tok: ["Returns","plain","text","and","crypten","runtimes"]
code: def get_runtimes(self):
      """Returns plain text and crypten runtimes"""
      x, y = (
          torch.rand(self.tensor_size, device=self.device),
          torch.rand(self.tensor_size, device=self.device),
      )
      x_enc, y_enc = crypten.cryptensor(x), crypten.cryptensor(y)
  
      runtimes, runtimes_enc = [], []
  
      for func in FuncBenchmarks.UNARY + FuncBenchmarks.BINARY:
          second_operand, second_operand_enc = None, None
          if func in FuncBenchmarks.BINARY:
              second_operand, second_operand_enc = y, y_enc
  
          runtime, _ = FuncBenchmarks.time_func(
              x, func, y=second_operand
          )
          runtimes.append(runtime)
  
          runtime_enc, _ = FuncBenchmarks.time_func(
              x_enc, func, y=second_operand_enc
          )
          runtimes_enc.append(runtime_enc)
  
      # add layer runtimes
      runtime_layers, runtime_layers_enc = self.get_layer_runtimes()
      runtimes.extend(runtime_layers)
      runtimes_enc.extend(runtime_layers_enc)
  
      return runtimes, runtimes_enc
  
imports: import argparse
  import functools
  import os
  import timeit
  from collections import namedtuple
  import crypten
  import crypten.communicator
  import numpy
  import pandas
  import torch
  from examples import multiprocess_launcher
label_desc: Use image node_id 4 for calling the FuncBenchmarks obj's underlying member method code with example usage: obj.get_runtimes() and returns: runtimes,  runtimes_enc