Catapult uses a network of directly linked FPGAs.
"Getting FPGAs into the datacenter is one thing but keeping them there is another," said Putnam.
FPGAs are getting there in terms of being more amenable for compute operations, but to keep FPGAs there we need to improve their amount of programmability. The FPGA tools are too slow, there are too many warnings and not great debugging -- but that's not new.
We'd like to give developers a feeling of putting their C++ into compiler but [compilation] is a manual process now. There's a huge need for high productivity FPGA languages.
A custom multicore processor that Putnam 's team designed and embedded into the FPGA helps. "We gave them a middle ground between C++ and RTL where people can program," he said.
The team's first prototype was a board using six Xilinx Virtex 6 chips, but the design was rejected by the datacenter group for several reasons. The team's second prototype shifted to Altera, largely because the company provided better support for what started as a Microsoft research project.
"Altera was really interesting in helping with the development -- the resources they were willing to throw our way were more significant than those from Xilinx which was willing to troubleshoot our design," he said.
Altera engineers gor the Microsoft team's code up and running on Linux a PCIe 3.0 board within two days. "A day later they had a Windows driver -- PCIe 3.0 has been a pain point for us," he said
Next page: Baidu runs with Xilinx
A special embedded core makes the FPGA more programmable.