code: def bm_raysampling() -> None:
      case_grid = {
          "raysampler_type": [
              MultinomialRaysampler,
              NDCMultinomialRaysampler,
              MonteCarloRaysampler,
          ],
          "camera_type": [
              PerspectiveCameras,
              OrthographicCameras,
              FoVPerspectiveCameras,
              FoVOrthographicCameras,
          ],
          "batch_size": [1, 10],
          "n_pts_per_ray": [10, 1000, 10000],
          "image_width": [10, 300],
          "image_height": [10, 300],
      }
      test_cases = itertools.product(*case_grid.values())
      kwargs_list = [
          dict(zip(case_grid.keys(), case)) for case in test_cases
      ]
  
      benchmark(
          TestRaysampling.raysampler,
          "RAYSAMPLER",
          kwargs_list,
          warmup_iters=1,
      )
  
imports: import itertools
  from fvcore.common.benchmark import benchmark
  from pytorch3d.renderer import FoVOrthographicCameras, FoVPerspectiveCameras, MonteCarloRaysampler, MultinomialRaysampler, NDCMultinomialRaysampler, OrthographicCameras, PerspectiveCameras
  from tests.test_raysampling import TestRaysampling
label_desc: Use image node_id 1 for calling a global function with example usage: bm_raysampling() without return types