in benchmarks/api/bench_sampler.py [0:0]
def test_quiver_ogbnproducts(mode='GPU'):
import quiver
if mode == 'GPU':
quiver_mode = 'GPU'
else:
quiver_mode = 'UVA'
root = osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))),
'..', 'data', 'products')
dataset = PygNodePropPredDataset('ogbn-products', root)
train_idx = dataset.get_idx_split()["train"]
train_loader = torch.utils.data.DataLoader(train_idx,
batch_size=1024,
pin_memory=True,
shuffle=True)
csr_topo = quiver.CSRTopo(dataset[0].edge_index)
quiver_sampler = quiver.pyg.GraphSageSampler(csr_topo, [15, 10, 5],
device=0,
mode=quiver_mode)
total_time = 0
sampled_edges = 0
for seeds in train_loader:
seeds = seeds.to(0)
torch.cuda.synchronize()
start = time.time()
_, _, adjs = quiver_sampler.sample(seeds)
torch.cuda.synchronize()
total_time += time.time() - start
for adj in adjs:
sampled_edges += adj.edge_index.shape[1]
print('Sampled Edges per secs: {} M'.format(sampled_edges / total_time / 1000000))