-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
27 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# GPU Fusion | ||
|
||
This repository includes the open source code for GPU fusion, enabling memory-access optimized kernel fusion for GPU batch jobs. | ||
|
||
Jobs have to be defined in a certain format (see `BFSJob` inside the code for example). | ||
|
||
After compilation with CUDA, the code can be run the following way: | ||
|
||
``` | ||
ALGO=BFS FUSION=1 ./fusion path-to-graph number | ||
``` | ||
|
||
Where `path-to-graph` is path to the adjacency graph file (converted via Ligra's [SNAPtoAdj](https://github.com/jshun/ligra/blob/master/utils/SNAPtoAdj.C) for example), and `number` is the number of concurrent jobs to run at the same time. | ||
|
||
The composition of jobs can be modified in `make_jobs` function (which is unrelated to the fusion code, and is just a utility function). | ||
|
||
Currently implemented algorithms/jobs are: | ||
|
||
* BFS | ||
* SSSP | ||
* PageRank | ||
* LabelPropagation | ||
|
||
The code provides comparisons with sequential execution as well as fine-grained profiling information if fusion is used. | ||
|
||
The entirety of the code is bundled in one file `fusion.cu` for ease of transport, but can be separated into multiple files if needed. | ||
|