Server-Side Coprocessor Updating for Mobile Devices with FPGAs

Chen Huang and Frank Vahid
University of California, Riverside


Abstract

FPGAs are increasingly used to implement coprocessors for applications running on desktop platforms, and soon such FPGA coprocessing may appear in mobile devices. Because one device may run different applications from another device, different coprocessor sets are needed for each device based on the device’s usage. We introduce an approach wherein a device profiles application usage and uploads that information to a server when docked. The server then determines the best coprocessor set based on such usage and on the device’s particular FPGA constraints. The server creates the coprocessor set by combining pre-synthesized coprocessors for each application, and considers multiple versions of the same coprocessor which tradeoff speed and size. We introduce a coprocessor set selection problem and propose a Pareto-Optimal merge heuristic for the server that yields near-optimal solutions with linear time complexity. We also use a method that avoids time-consuming resynthesis of the coprocessors into a single FPGA binary by using small reconfigurable regions with pre-defined configurable inter-region communication. Our experiments show that the Pareto-Optimal merge heuristic generates results that on average are within 1% of the optimal solution and run 5~20X faster than Simulated Annealing. The experiments also show that a 3X speedup and 70% energy reduction can be achieved when utilizing coprocessors in the FPGA as opposed to running the applications only on a microprocessor.