-
Notifications
You must be signed in to change notification settings - Fork 1
Benchmarking
Subject to change. Right now, the same code drives the micro-benchmarks and the Graph500 official benchmark.
In order to figure out which device+kernel combination works best, we must try everything out.
- Segment: Each graph is ordered by descending degree (i.e., highest degree to lowest degree). For the benchmarking purposes, the graph is divided into
nsegments such that each roughly has an equal number of edges. - GTEPs: Giga Traversed Edges Per second. The higher this number, the better!
Go to profile/bfs. In profile/bfs/benchmark_bfs.cu, you may configure the number of segments NUM_SEGMENTS and the number of GPU blocks NUM_BLOCKS to use. Disable RUN_FULL_KERNELS if you only want to get micro-benchmark results.
Run make. make test will run a graph stored under graphs/graph_scale23_degree16.sg. The command is essentially
./benchmark_bfs.exe ../../graphs/graph_scale23_degree16.sg
To use your own graph, run
./benchmark_bfs.exe path/to/your/graph.sg
Optionally, run make clean to delete the compiled binary.
The resulting micro-benchmark results will be emitted in the same folder as named .yaml files.
Go to profile/sssp. In profile/bfs/benchmark_sssp.cu, you may configure the number of segments NUM_SEGMENTS and the number of GPU blocks NUM_BLOCKS to use. Enable the RUN_EPOCH_KERNELS flag. Disable RUN_FULL_KERNELS if you only want to get micro-benchmark results.
Run make. make test will run a graph stored under graphs/graph_scale23_degree16.wsg. The command is essentially
./benchmark_sssp.exe ../../graphs/graph_scale23_degree16.wsg
To use your own graph, run
./benchmark_sssp.exe path/to/your/graph.wsg
Optionally, run make clean to delete the compiled binary.
The resulting micro-benchmark results will be emitted in the same folder as named .yaml files.
Follow the steps listed under Getting Benchmark Results to get the appropriate benchmark.cu file. Enable the RUN_FULL_KERNELS flag and disable the RUN_EPOCH_KERNELS flag. Make sure the heterogeneous kernel emitted by the "compiler" is copied (with the same file name) over to src/kernels/heterogeneous.