code: def nvtx_profiling(
      algo_name,
      data_kwargs,
      setup_kwargs,
      training_kwargs,
      inference_kwargs,
  ):
      dataset_type = data_kwargs["dataset_type"]
      n_samples = data_kwargs["n_samples"]
      n_features = data_kwargs["n_features"]
      dataset_format = (
          data_kwargs["dataset_format"]
          if "dataset_format" in data_kwargs
          else "cupy"
      )
  
      data_kwargs_edited = copy(data_kwargs)
      for param in [
          "dataset_type",
          "n_samples",
          "n_features",
          "dataset_format",
      ]:
          data_kwargs_edited.pop(param, None)
  
      path = os.path.dirname(os.path.realpath(__file__))
      command = """
      python {path}/auto_nvtx_bench.py
          --algo_name {algo_name}
          --dataset_type {dataset_type}
          --n_samples {n_samples}
          --n_features {n_features}
          --dataset_format {dataset_format}
          --data_kwargs {data_kwargs}
          --setup_kwargs {setup_kwargs}
          --training_kwargs {training_kwargs}
          --inference_kwargs {inference_kwargs}
      """.format(
          path=path,
          algo_name=algo_name,
          dataset_type=dataset_type,
          n_samples=n_samples,
          n_features=n_features,
          dataset_format=dataset_format,
          data_kwargs=json.dumps(
              data_kwargs_edited, separators=(",", ":")
          ),
          setup_kwargs=json.dumps(setup_kwargs, separators=(",", ":")),
          training_kwargs=json.dumps(
              training_kwargs, separators=(",", ":")
          ),
          inference_kwargs=json.dumps(
              inference_kwargs, separators=(",", ":")
          ),
      )
      command = command.replace("\n", "").replace("\t", " ")
      command = " ".join(command.split())
  
      print("\n\n" + "\033[96m" + "=x" * 48)
      print("=x" * 20 + " NVTX BENCHMARK " + "=x" * 20)
  
      profiler = Profiler()
      profiler.profile(command)
  
      print("=x" * 48)
      print("=x" * 48 + "\033[0m" + "\n")
  
imports: import os
  import json
  import time
  import math
  import itertools
  import warnings
  from cuml.internals.safe_imports import cpu_only_import, gpu_only_import
  import pytest
  from cuml.benchmark import datagen, algorithms
  from cuml.benchmark.nvtx_benchmark import Profiler
  from dask.distributed import wait
  import dask.array
  import dask.dataframe
  from copy import copy
  from cuml.benchmark.bench_helper_funcs import pass_func, fit, predict, transform, kneighbors, fit_predict, fit_transform, fit_kneighbors
label_desc: Use image node_id 2 for calling a global function with example usage: nvtx_profiling(algo_name, data_kwargs, setup_kwargs, training_kwargs, inference_kwargs) without return types