libiio/ethernet connection based deep learning network deployment
ethernet interface
the ethernet interface leverages an arm processor to send and receive information from the deployed deep learning network running on the fpga. the arm processor runs on a linux operating system. you can use the linux operating system services to interact with the fpga. when you use the ethernet interface, the bitstream is downloaded to the sd card. the bitstream is persistent through power cycles and is reprogrammed each time the fpga is turned on. the arm processor is configured with the correct device tree when the bitstream is programmed.
to communicate with the design running on the fpga, matlab leverages the ethernet connection between the host computer and arm processor. the arm processor runs a libiio service, which communicates with a datamover ip in the fpga design. you use the datamover ip for fast data transfers between the host computer and fpga, which is useful when prototyping large deep learning networks that have long transfer times over jtag. the arm processor generates the read and write transactions to access memory locations in the onboard memory and deep learning processor.
this figure shows the high-level architecture of the ethernet interface.
you can configure your dlhdl.workflow
object hardware interface to use an
ethernet connection at the time of the workflow object creation. for more information, see
.
libiio/ethernet performance
the improvement in performance speed of jtag compared to libiio/ethernet is listed in this table.
transfer speed | jtag | iio | speedup |
write transfer speed | 225 kb/s | 33 mb/s | approximately 150x |
read transfer speed | 162 kb/s | 32 mb/s | approximately 200x |