code: def solver_access(func=_time_sdeint):
      ts = torch.linspace(t0, t1, steps)
      sde = SDE().to(device)
  
      y0 = w0 = torch.zeros(small_batch_size, small_d).to(device)
      bp_py_time_s, bt_py_time_s, bi_py_time_s = _compare_sdeint(
          w0, sde, y0, ts, func, msg="small"
      )
  
      y0 = w0 = torch.zeros(large_batch_size, large_d).to(device)
      bp_py_time_l, bt_py_time_l, bi_py_time_l = _compare_sdeint(
          w0, sde, y0, ts, func, msg="large"
      )
  
      y0 = w0 = torch.zeros(huge_batch_size, huge_d).to(device)
      bp_py_time_h, bt_py_time_h, bi_py_time_h = _compare_sdeint(
          w0, sde, y0, ts, func, msg="huge"
      )
  
      name = {
          _time_sdeint: "sdeint",
          _time_sdeint_bp: "sdeint-backprop-solver",
          _time_sdeint_adjoint: "sdeint-backprop-adjoint",
      }[func]
  
      img_path = os.path.join(
          ".", "benchmarks", f"plots-{device}", f"{name}.png"
      )
      if not os.path.exists(os.path.dirname(img_path)):
          os.makedirs(os.path.dirname(img_path))
  
      xaxis = [
          small_batch_size * small_d,
          large_batch_size * large_batch_size,
          huge_batch_size * huge_d,
      ]
  
      utils.swiss_knife_plotter(
          img_path,
          plots=[
              {
                  "x": xaxis,
                  "y": [bp_py_time_s, bp_py_time_l, bp_py_time_h],
                  "label": "bp_py",
                  "marker": "x",
              },
              {
                  "x": xaxis,
                  "y": [bt_py_time_s, bt_py_time_l, bt_py_time_h],
                  "label": "bt_py",
                  "marker": "x",
              },
              {
                  "x": xaxis,
                  "y": [bi_py_time_s, bi_py_time_l, bi_py_time_h],
                  "label": "bi_py",
                  "marker": "x",
              },
          ],
          options={
              "xscale": "log",
              "yscale": "log",
              "xlabel": "size of tensor",
              "ylabel": f"wall time on {device}",
              "title": name,
          },
      )
  
imports: import argparse
  import logging
  import os
  import time
  import numpy.random
  import torch
  import torchsde
  from diagnostics import utils
label_desc: Use image node_id 9 for calling a global function with example usage: solver_access(func) without return types