Making FPGAs Programmable as Computers and Doing It At Scale [slides]
The benefits of using application-specific architectures to improve performance have been known for decades, and today, power is also just as important. FPGAs have long been shown to address both these issues but they are still not used in the mainstream of computing. They are hard to program and there has been much effort towards building high-level synthesis tools to address this problem. Such tools are necessary, but not sufficient. Making FPGAs easy to use for computation requires more than developing accessible tools for creating hardware targeted for FPGAs. The software computing world has a lot of taken-for-granted, sometimes invisible and good open source infrastructure that is missing for using FPGAs as computing devices. I will present the need for some common infrastructure and abstraction layers to support the use of FPGAs for computing. It is also important to leverage existing programming models when introducing FPGAs into the computing ecosystem. Of particular relevance to the HPC community, I will describe the work we have done at the University of Toronto with incorporating FPGAs into the MPI and PGAS programming models.
Paul Chow is a Professor in the Department of Electrical and Computer Engineering at the University of Toronto where he holds the Dusan and Anne Miklas Chair in Engineering Design. Prior to joining UofT in 1988 he was at the Computer Systems Laboratory at Stanford University, Stanford, CA, as a Research Associate, where he was a major contributor to an early RISC microprocessor design called MIPS-X, one of the first microprocessors with an on-chip instruction cache and the root of many concepts used in processors today. His research interests include high performance computer architectures, reconfigurable computing, embedded and application-specific processors, and field-programmable gate array architectures and applications.
Paul was the Program Chair for the 2008 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA 2008), the premier conference for FPGAs and General Chair for FPGA 2009. In 2011, he was the Program Chair for the IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 2011), the main conference for the reconfigurable computing area. He was the FCCM 2012 General Chair. In addition, Paul is on the technical program committee for the four main FPGA conferences: FPGA, FCCM, FPL, FPT.