code: def save_benchmark_data(
      csv_data,
      batch_size,
      layers,
      num_neighbors,
      hidden_channels,
      total_time,
      model_name,
      dataset_name,
      use_sparse_tensor,
  ):
      config = (
          f"Batch size={batch_size}, "
          f"#Layers={layers}, "
          f"#Neighbors={num_neighbors}, "
          f"#Hidden features={hidden_channels}"
      )
      csv_data["DATE"].append(datetime.now().date())
      csv_data["TIME (s)"].append(round(total_time, 2))
      csv_data["MODEL"].append(model_name)
      csv_data["DATASET"].append(dataset_name)
      csv_data["CONFIG"].append(config)
      csv_data["SPARSE"].append(use_sparse_tensor)
  
file_path: pytorch_geometric/benchmark/utils/utils.py
imports: import os
  import os.path
  from datetime import datetime
  import torch
  from ogb.nodeproppred import PygNodePropPredDataset
  from tqdm import tqdm
  import torch_geometric.transforms
  from torch_geometric.data import HeteroData
  from torch_geometric.datasets import OGB_MAG, Reddit
  from torch_geometric.nn import GAT, GCN, PNA, EdgeCNN, GraphSAGE
  from torch_geometric.utils import index_to_mask
  from .hetero_gat import HeteroGAT
  from .hetero_sage import HeteroGraphSAGE
label_desc: Use image node_id 5 for calling a global function with example usage: save_benchmark_data(csv_data, batch_size, layers, num_neighbors, hidden_channels, total_time, model_name, dataset_name, use_sparse_tensor) without return types