-
Notifications
You must be signed in to change notification settings - Fork 0
Benchmark Guide
| Path | Responsibility |
|---|---|
00_open_graph |
Pinned OpenGraph CPU/reference framework and graph structures |
01_capi_precis |
Pinned CAPI-Precis AFU-control dependency |
02_capi_graph |
AccelGraph host entry point, CAPI algorithms, tests, MMIO runtime |
03_capi_integration |
Graph compute-unit RTL, simulator design, synthesis, images |
04_test_graphs |
Small and suite-specific benchmark inputs |
05_scripts |
CU selection and version helpers |
06_slides |
Original papers, diagrams, and current brand assets |
- Parse graph, algorithm, direction, threading, reorder, cache, and CAPI options.
- Load or convert the edge list and construct the selected graph structure.
- Run preprocessing and optional relabeling.
- Select the OpenMP or CAPI implementation.
- For CAPI, map graph arrays into the WED and launch one or more CU rounds.
- Record timing and algorithm statistics.
- Compare results through the existing reference or report path.
The active layout manifest is authoritative:
| Algorithm | Active layout |
|---|---|
| BFS | CSR PULL BottomUp |
| PageRank | CSR PULL FloatPoint, FixedPoint, Quantized |
| SPMV | CSR PULL FloatPoint, FixedPoint |
| Connected components | CSR ShiloachVishkin |
| Triangle counting | CSR BinaryIntersection |
PageRank PUSH FloatPoint, FixedPoint, and Quantized remain exact expected
failures until their missing RTL source sets are restored. Other
research-stage source paths are not active accelerator support. CU selection
is determined by data structure, algorithm, direction, and precision in
05_scripts/choose_algorithm_*.py.
Current portable real-top evidence limits PageRank PULL, SPMV PULL, and
TriangleCount to -K1. ConnectedComponents passes its full topology; the
multi-CU ring blocker for the other layouts is recorded in
Verification infrastructure.
| Option | Purpose |
|---|---|
-f |
Input graph |
-z |
Input format: text edge list, binary edge list, or binary CSR |
-d |
Graph data structure |
-a |
Algorithm |
-p |
Pull, push, or hybrid direction |
-r |
Root vertex for traversal algorithms |
-i |
Iteration count |
-n, -N, -K
|
Preprocessing, algorithm, and accelerator-kernel thread/CU counts |
-l, -L, -O
|
First, second, and third reorder stages |
-C |
Cache-size model |
-M |
Cache-mask mode |
-t |
Trial count |
-e |
Numeric tolerance |
-b |
Delta for delta-stepping workloads |
-s |
Symmetrize the graph |
-w |
Load or generate weights |
Pass custom arguments through the existing Make targets, for example:
make run-openmp ARGS='-f <graph> -z 1 -d 0 -a 0 -p 0 -r 0 -N 8 -t 1'The selected binary's --help output is the exact parser reference.
A reportable CAPI result needs all of the following:
- exact graph file and format;
- algorithm, direction, precision, reorder, cache, thread, and CU settings;
- host, submodule, and FPGA image revisions;
- bounded accelerator completion with no error register;
- completion reset before any next round;
- result match or algorithm-specific correctness evidence;
- elapsed time and trial count.
See accelerator verification for liveness and the deployment runbook for operational evidence.