Differences

This shows you the differences between two versions of the page.

Link to this comparison view

graphgen [2017/09/29 10:11] (current)
Line 1: Line 1:
 +====== GraphGen: Compiling Graph Algorithms for Accelerator Platforms ======
 + 
 +This project proposes and investigates GraphGen, a domain-specific compiler that accepts graph algorithms described in a widely used vertex-centric graph specification to target a diverse range of non-Von-Neumann accelerator platforms. The goal of GraphGen is to enable application- and algorithm-level programmers without specific platform expertise to nevertheless be able to take advantage of the performance and energy efficiency of accelerator platforms. The GraphGen compilation approach produces an executable for a standard Graph Execution Model (GEM). ​ Akin to an ISA for graph computations,​ GEM is a fixed low-level abstraction designed to capture arbitrary graph computations in general and to permit efficient direct support in hardware or light-weight interpretation in software. Once a platform specialist has created GEM support, the platform can be used to execute arbitrary graph computations compiled by GraphGen from a vertex-centric graph specification input. Conversely, the same specification input can be retargeted to any GEM-enabled platform. ​  Aside from being able to run graph algorithms on existing accelerator platforms (FPGAs, GPUs), there is also opportunity to investigate novel dedicated graph processor architectures. ​ This is a project in collaboration with Dr. Eriko Nurvitadhi of Intel ISTC. Funding for this work has been provided, in part, by the National Science Foundation (CCF-1320725) and the Intel Science and Technology Center on Embedded Computing.
  
 +  * **Students**
 +    * Marie Nguyen
 +    * Yu Wang
 +    * [[http://​www.cs.cmu.edu/​~gweisz/​ |Gabriel Weisz]]
 +  * **Demo**
 +    * [[http://​www.ece.cmu.edu/​coram/​doku.php?​id=graphgencnn |CNN Handwriting Recognition]]
 +  * **Publications**
 +    * Gabriel Weisz, Joseph Melber, Yu Wang, Kermin Fleming, Eriko Nurvitadhi and James C. Hoe. **A Study of Pointer-Chasing Performance on Shared-Memory Processor-FPGA Systems**. Proc. ACM International Symposium on Field-Programmable Gate Arrays (FPGA), February 2016. ([[http://​www.ece.cmu.edu/​~jhoe/​distribution/​2016/​fpga16.pdf |pdf]])
 +    * Eriko Nurvitadhi, Gabriel Weisz, Yu Wang, Skand Hurkat, Marie Nguyen, and James C. Hoe, José F. Martinez, Carlos Guestrin. ​ **GraphGen: An FPGA Framework for Vertex-Centric Graph Computation**. Proc. IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), ​ May 2014. ([[http://​www.ece.cmu.edu/​~jhoe/​distribution/​2014/​fccm14.pdf |pdf]])
 +    * Gabriel Weisz, Eriko Nurvitadhi, and James C. Hoe. **GraphGen for CoRAM: Graph Computation on FPGAs**. Third Workshop on the Intersections of Computer Architecture and Reconfigurable Logic (CARL), December 2013.
 +    * Eriko Nurvitadhi, Gabe Weisz, James C. Hoe, and Carlos Guestrin. **GraphGen: Design Compiler for Graph Computation**. Workshop on SoCs, Heterogeneous Architectures and Workloads (SHAW-4), February 2013.
 +  * **Related**
 +    * [[FPGA Architecture for Computing |CoRAM FPGA Architecture for Computing]]
 +    * [[http://​www.ece.cmu.edu/​calcm/​carl|Workshop on the Intersections of Computer Architecture and Reconfigurable Logic]] (co-organized with Derek Chiou and Joel Emer)