def METHOD_NAME(test_dataset, model, epochs, batch_size, profiling, bf16,
                  use_compile):
    model = model.to(device)
    if use_compile:
        model = torch_geometric.compile(model)
    test_loader = DataLoader(test_dataset, batch_size, shuffle=False)
    if torch.cuda.is_available():
        amp = torch.cuda.amp.autocast(enabled=False)
    else:
        amp = torch.cpu.amp.autocast(enabled=bf16)
    with amp:
        for epoch in range(1, epochs + 1):
            print("Epoch: ", epoch)
            if epoch == epochs:
                with timeit():
                    inference(model, test_loader, device, bf16)
            else:
                inference(model, test_loader, device, bf16)
        if profiling:
            with torch_profile():
                inference(model, test_loader, device, bf16)