code: def bench_dgl_uva(benchmark, dgl_graph_26_16, batch_size, fanout):
      g, df = dgl_graph_26_16
      assert g.device.type == "cpu"
      seed_nodes = torch.as_tensor(df["dst"][:30_000_000])
      seed_nodes = seed_nodes.to("cuda")
      ### Reverse because dgl sampler samples from destination to source
      fanout.reverse()
      sampler = dgl.dataloading.MultiLayerNeighborSampler(fanout)
      dataloader = dgl.dataloading.DataLoader(
          g,
          seed_nodes,  # train_nid must be on GPU.
          sampler,
          device=torch.device(
              "cuda:0"
          ),  # The device argument must be GPU.
          num_workers=0,  # Number of workers must be 0.
          use_uva=True,
          batch_size=batch_size,
          drop_last=False,
          shuffle=False,
      )
  
      def uva_benchmark(dataloader_it):
          input_nodes, output_nodes, blocks = next(dataloader_it)
          return input_nodes, output_nodes, blocks
  
      # added iterations and rounds to prevent dataloader going over num batches
      dataloader_it = iter(dataloader)
      input_nodes, output_nodes, blocks = benchmark.pedantic(
          uva_benchmark,
          kwargs={"dataloader_it": dataloader_it},
          iterations=10,
          rounds=10,
      )
      assert len(output_nodes) == batch_size
      return
  
file_path: cugraph/benchmarks/dgl/pytest-based/dgl_benchmark.py
imports: import pandas
  import os
  import pytest_benchmark
  import pytest
  import torch
  import dgl
label_desc: Use image node_id 5 for calling a global function with example usage: bench_dgl_uva(benchmark, dgl_graph_26_16, batch_size, fanout) and returns: input_nodes,  output_nodes,  blocks