code: def e2e_benchmark(
      sampled_dir: str,
      feat: torch.Tensor,
      y: torch.Tensor,
      sampled_meta_d: dict,
  ):
      """
      Run the e2e_benchmark
      Args:
          sampled_dir: directory containing the sampled graph
          feat: node features
          y: node labels
          sampled_meta_d: dictionary containing the sampled graph metadata
      """
      time_ls = []
  
      # TODO: Make this a parameter in bulk sampling script
      sampled_meta_d["sparse_format"] = "csc"
      sampled_dir = os.path.join(sampled_dir, "samples")
      dataloader = create_dataloader(
          sampled_dir,
          sampled_meta_d["total_num_nodes"],
          sampled_meta_d["sparse_format"],
          return_type="cugraph_dgl.nn.SparseGraph",
      )
      time_d = run_1_epoch(
          dataloader,
          feat,
          y,
          fanout=sampled_meta_d["fanout"],
          batch_size=sampled_meta_d["batch_size"],
          model_backend="cugraph_dgl",
      )
      time_ls.append(time_d)
      print("=" * 30)
      return time_ls
  
file_path: cugraph/benchmarks/cugraph-dgl/scale-benchmarks/cugraph_dgl_benchmark.py
imports: import os
  import json
  import pandas
  import os
  import time
  from rmm.allocators.torch import rmm_torch_allocator
  import rmm
  import torch
  from cugraph_dgl.dataloading import HomogenousBulkSamplerDataset
  from model import run_1_epoch
  from argparse import ArgumentParser
  from load_graph_feats import load_node_labels, load_node_features
label_desc: Use image node_id 4 for calling a global function with example usage: e2e_benchmark(sampled_dir, feat, y, sampled_meta_d) and returns: time_ls