class_docstr: BenchmarkRunner is responsible for benchmarking all the registered
  benchmark test groups.
  
  Attributes:
      tag_filter (str): control the benchmarks which matches the tag.
      operator (str): only run benchmark test cases that contains
  this filter string in the test case's id.
      test_name (str): only run benchmark test cases that matches this filter,
      this is a case-sensitive substring match and it happens in
      the _keep_test method.
class_docstr_tok: ["BenchmarkRunner","is","responsible","for","benchmarking","all","the","registered","benchmark","test","groups",".","Attributes",":","tag_filter","(","str",")",":","control","the","benchmarks","which","matches","the","tag",".","operator","(","str",")",":","only","run","benchmark","test","cases","that","contains","this","filter","string","in","the","test","case","'s","id",".","test_name","(","str",")",":","only","run","benchmark","test","cases","that","matches","this","filter",",","this","is","a","case-sensitive","substring","match","and","it","happens","in","the","_keep_test","method","."]
docstr: This function runs forward path of an op to get an output. Then the backward path is executed
  and the execution time is reported
docstr_tok: ["This","function","runs","forward","path","of","an","op","to","get","an","output",".","Then","the","backward","path","is","executed","and","the","execution","time","is","reported"]
code: def _launch_backward(self, test_case, iters, print_per_iter=False):
      """This function runs forward path of an op to get an output. Then the backward path is executed
      and the execution time is reported
      """
      test_case.run_forward(
          num_runs=1, print_per_iter=False, cuda_sync=False
      )
      if test_case.framework == "PyTorch":
          test_case._output_mean()
      backward_time = timeit.timeit(
          functools.partial(
              test_case.run_backward, iters, print_per_iter
          ),
          number=1,
      )
      return backward_time
  
imports: import ast
  import copy
  import functools
  import json
  import timeit
  from collections import namedtuple
  import benchmark_utils
  import numpy
  import torch
  import torch.utils.cpp_extension
label_desc: Use image node_id 7 for calling the BenchmarkRunner obj's underlying member method code with example usage: obj._launch_backward(test_case, iters, print_per_iter) and returns: backward_time