Hello, my name is Martin Kronberg.
Welcome to the IOT Developer Show season four.
In this episode, I'll tell you about FPGAs, or Field
Programmable Gate Arrays.
You'll learn what they are, how they work,
and some the unique characteristics that
make them ideal for AI-based vision inference applications.
FPGAs can be used for offloading computer vision
tasks onto hardware that increases efficiency.
They are similar in this way to a VPU,
but the way in which they operate
and how you would develop on them are different.
Let's take a closer look into what these devices are.
Fundamentally, they are programmable hardware.
Unlike CPUs that perform operations
by loading and running software, programming an FPGA
means changing the actual hardware design of the device.
You can think of an FPGA as a collection of logic, IO,
and data processing hardware blocks
arrays for a specific task.
The main type of blocks are logic elements,
which are a collection of logic gates, lookup tables,
and registers--
these logic elements are combined
to create all sorts of computational functions
on the FPGA--
digital signal processing blocks,
which handle multiplication and addition operations--
critical for filters in a convolutional neural network--
on-chip memories, which can be used
as data buffers, pipelines, and for nearly any kind
of on-chip storage operation.
There are also hardened interface blocks,
such as DRAM controllers, PCIE, and
high-speed serial transceivers.
These blocks have a fixed functionality, which are not
built from logic elements.
Tying these blocks together is the routing fabric
which is configured for the specific FPGA design.
The FPGA blocks and fabric are configured into a custom
hardware design by a bitstream.
You can think of it as an FPGA image.
When the FPGA is powered on, the bitstream
is loaded into the SRAM of the device.
To change the function of the FPGA,
a different bitstream can be loaded into memory.
How do you create a bitstream for the specific task?
Well, FPGA developers use specialized design tools
to convert a high-level hardware description into a bitstream.
The good news is that this has already been done for you.
The Intel distribution of OpenVINO Toolkit
includes several pre-compiled bitstreams
for the most popular neural network topologies
that you can use in your solution.
The Toolkit also comes with all the software
that you need in order to load your bitstream onto the FPGA.
So now that you know a little bit more about FPGAs,
let's discuss why they are particularly
good for accelerating vision inference.
First and foremost, FPGAs boost system performance.
FPGAs can be designed to perform many operations in parallel
much more so than a CPU.
In general, hardware is faster than software.
FPGAs do not waste processing time fetching instructions
and data as they are defined by the hardware itself.
FPGAs have lots of fast, on-chip local memory
to minimize access times and reduce latency.
You can also store and access large amounts of data
through multiple interfaces.
Because of these characteristics,
FPGAs provide excellent inference performance
with very low latency and are ideal for managing
large networks with billions of parameters and large image
formats, such as 4K.
FPGAs also lets you adapt the changes.
As new network topologies emerge or custom topologies
are needed, FPGAs can be tailored
to fit the unique requirements for each application.
It's as simple as loading a new bitstream into memory.
Finally, FPGAs are more resilient
than standard computers and can operate in harsh conditions
for extended periods of time.
Many FPGAs run 24/7 in very hot industrial environments
where they are used for monitoring product
quality or worker safety.
As part of Intel's quality process,
FPGAs are stress tested to accelerate silicon failure
mechanisms.
It ensures production devices can
operate for over 100,000 hours continuously
in extreme temperatures.
So that's the basic overview.
If you'd like to learn more about FPGA technology
in general, you can download the free FPGA
for Dummies book brought to you by Intel
or watch the online training.
In the next episode, we learn how
to use FPGAs with the Intel distribution of OpenVINO
Toolkit to accelerate your vision tasks.
As usual, all the links are provided,
and I'll see you guys next time.