As the technological world advances, it has become increasingly difficult for the speed of computers to improve. UT Computer Science Professor Dr. Chris Rossbach's research in field-programmable gate array (FPGA) virtualization has made significant strides in the development of a more efficient computing infrastructure. Developing a system called SYNERGY, Rossbach and his team are able to explore techniques that would make it possible to virtualize FPGAs in a data center environment. This method would allow computers to become more efficient and reduce the amount of overall energy consumed.
The ability to create smaller transistors has, in the past, been the most common technique for creating faster, more efficient processors. However, as it has become increasingly difficult to create smaller transistors that are actually power-efficient, specialized hardware has become a popular way to increase performance. To keep up with technological demand, a new generation of hardware called accelerators has been designed to address these issues. For example, graphics processing units (GPU) are useful for gaming applications because they can simultaneously process many pieces of data. FPGAs are a unique type of specialized hardware because they are reconfigurable, meaning they can be reprogrammed in hardware definition languages to be any kind of specialized hardware accelerator. To understand Rossbach's research, it must be understood why FPGAs are not widely used in data centers in this way. While FPGAs are a good alternative for creating arbitrary accelerators, they are difficult to virtualize. Virtualization is a way for a single machine to provide an abstraction of many virtual machines, allowing users to manage and share resources. It has become the key technology that has made cloud computing possible. If FPGAs are to be used to help power efficiency problems in the cloud, there must be a good solution to make virtualizing them possible. This is where Rossbach's research in SYNERGY is crucial.
SYNERGY virtualizes FPGAs so they may be used in data centers. While standard accelerators can capture the state of a program and then store or transfer data, FPGAs cannot because they do not contain an interface that describes the state of a running program. Instead, SYNERGY is able to interpose on the language layer for virtualization. In language-level interposition, a program called a compiler can translate the original programming code into a machine code. In this case, the compiler takes a Verilog program— a hardware description language commonly used to program FPGAs— and rewrites it to expose interfaces, making it possible to capture the program's state at that moment. Simply speaking, one may write a program in Verilog and feed it to the SYNERGY compiler which then produces what a typical FPGA would produce and additional logic, exposing the state of the running program using that hardware. The product of this process is hardware acceleration logic that can be virtualized.
FPGAs have continued to become more important in both production and general-purpose acceleration. Techniques for virtualizing FPGAs are in demand because they can provide flexible on-demand hardware acceleration in data centers. While manufacturers have looked to address this problem through hardware approaches, SYNERGY could eventually provide a more effective compiler-based solution to virtualize FPGAs. In the future, Rossbach’s SYNERGY could be an efficient and effective approach to FPGA virtualization for the cloud.