code: def bench_dgl_pure_gpu(
      benchmark, scale_edge_factor, batch_size, fanout
  ):
      df = get_edgelist(scale_edge_factor[0], scale_edge_factor[1])
      g = create_dgl_graph_from_df(df).to("cuda")
      assert g.device.type == "cuda"
      seed_nodes = torch.as_tensor(df["dst"][:batch_size])
      seed_nodes = seed_nodes.to("cuda")
      assert len(seed_nodes) == batch_size
      ### Reverse because dgl sampler samples from destination to source
      fanout.reverse()
      sampler = dgl.dataloading.MultiLayerNeighborSampler(fanout)
  
      input_nodes, output_nodes, blocks = benchmark(
          sampler.sample, g, seed_nodes=seed_nodes
      )
      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 3 for calling a global function with example usage: bench_dgl_pure_gpu(benchmark, scale_edge_factor, batch_size, fanout) without return types