Recently, the TinyFPGA series from designer Luke Valenty received coverage from the open-source hardware press. While FPGA enthusiasts rejoiced at the news of a tiny FPGA form-factor, little discussion occurred as to why a small FPGA for makers is an interesting phenomenon.
So what is so great about FPGAs and why should anyone care that they are now tiny? A few reasons, some of them quite intriguing.
FPGAs Sound Super Boring, Are Actually Super Interesting
To better understand the potential of FPGAs in IoT, we can gain clues by examining how they are being deployed in the datacenter currently. Over the last few years, Microsoft (among others) have been placing their hopes in FPGAs as a solution to accelerate parallel workloads associated with Deep Learning as discussed in this Microsoft blog post:
As the advances in artificial intelligence become more apparent, they started to see how well-suited FPGAs were for that kind of work. That’s because FPGAs are especially good at efficiently doing parallel computing, which is when many computations are carried out simultaneously.
The ability to do deep learning more quickly – using that AI supercomputer in the cloud – has broad implications. It could vastly speed up advances in automatic translation, accelerate medical breakthroughs and create automated productivity tools that better anticipate our needs and solve our workday problems.
With FPGAs, Burger said another key advantage is that you can quickly adapt to whatever the next technological breakthrough is, without having to worry too much about whether you anticipated it or not. That’s because you can easily reprogram the FPGAs directly, instead of using less efficient software or waiting as long as a few years to get new hardware.
While it is unlikely that makers and tinkerers are going to begin doing AI experiments in their FPGA projects anytime soon, the potential to move FPGA AI and routing work into small IoT devices at the edge seems intriguing.
FPGA IoT would also unlock many interesting use-cases such as more responsive AI capable of automatic translations and other scenarios in a wider variety of devices with fewer round trips to the cloud. Furthermore, new advances in algorithms and architectures to speed AI-related tasks could be immediately deployed to thousands of edge devices without having to upgrade the physical hardware at the edge.
While it might be relatively easy to replace a server sitting in a rack, it will be significantly more difficult and expensive to upgrade thousands of IoT devices scattered all over a city or other likely application area for an IoT solution. Being able to modify fleets of already deployed hardware on demand without replacing devices seems like a very useful feature indeed.
Returning to the Microsoft piece:
FPGAs used to be relegated to the back room, performing tasks sent to them. Now, the FPGAs are the first to see every message going into the server, enabling them to both make decisions on how to handle each message and perform the work, often without the processor’s involvement. “What we’ve done now is we’ve made the FPGA the front door,” Chiou said.
The begs the following question: If FPGAs make a great front-door to CPUs in the cloud, what is stopping us from using them well before that processing even gets to the cloud?
The Open Source Movement Makes Things Usable
I have already alluded to the usability troubles inherent with FPGAs: They are simply beastly to use with the current tools available, spurring efforts by the open source community to introduce simpler tooling such as Project IceStorm and the Papilio FPGA platform. However, as things stand currently, FPGAs are a long way from being embraced by the broader open source hardware and maker communities as explained in detail by the article.
FPGA development has always been an industrial activity, dominated by brutalist, opaque, and proprietary tools.
What is so exciting about devices like the TinyFPGA is that they begin to pave the pave for more and more Makers and Open Source community members to get into FPGAs and focus collectively on improving their usability. Once FPGAs are truly usable, they will be able to gain broad traction in IoT and we can begin exploring their potential to a much greater degree.