A major impediment to the use of FPGAs in computing systems is the effort involved in managing their diverse interfaces and coordinating data transfers across them.
In this talk, I'll present an ongoing project providing agents that implement data access patterns on behalf of the application, allowing the application developer to focus on computation rather than interfaces. Agents support many types of patterns, from simple streams and block transfers to graph traversals and pointer chasing accesses that are accelerated by custom hardware right at the memory controller. An abstraction layer allows applications to be retargeted to different FPGA devices with minimal changes, and to use hardware designs created with any hardware description language or IP core generator. Early results indicate that agent-based applications perform comparably to those that device experts create by hand, with much less design effort.
Gabriel Weisz is a fifth year PhD student in the Computer Science Department at Carnegie Mellon University, working under the supervision of James C. Hoe. He earned a B.S. from Cornell Engineering in 1999 with dual majors in computer science and electrical engineering. His research interests are in computer architecture, with a focus on reconfigurable computing systems.