Feature detection on Xilinx FPGAs using OpenCL

Brian Kloppenborg ArrayFire Leave a Comment

Today at SuperComputing 2015, ArrayFire demonstrated its first FPGA-accelerated application running on a Xilinx FPGA using OpenCL. In May 2015, ArrayFire became a Xilinx Alliance member which provided us early access to the Xilinx SDAccel Development Environment within initial support for OpenCL. We helped Xilinx test and improve its OpenCL implementation and make it more accessible to first-time users.

Over the last few months, we implemented several programs for the FPGA and subsequently learned a lot about optimizing OpenCL kernels to take advantage of pipelining, wide memory busses, and the various forms of configurable local memory offered on Xilinx hardware.

Our first fully ported application is from computer vision: the FAST feature extractor. FAST finds corners in image. In the image below, the left side shows a frame from the Blender Foundation's Big Buck Bunny video. On the right, we show the same frame but with detected corners superimposed (the green circles most obviously seen on the character's faces). These features, when combined with homography, can be used for object tracking.

We'll include more details about performance in a later blog post. To see it in action stop by booth 2229 at SC15!
FAST on a Xilinx FPGA