Dynamic Neural Accelerator® DNA-F100 is Edgecortix's first-generation (F-series) high-performance convolution neural network (CNN) inference IP designed for FPGAs. It is optimized for ultra-low latency, energy-efficient and high throughput workloads for streaming data. Running at 290 MHz, it provides a peak INT8 throughput of 2.4 Top/s. Complemented by Edgecortix’s proprietary MERA™ dataflow compiler, nearly zero effort will be required for deployment of deep neural networks designed in most popular frameworks like Pytorch and Tensorflow-lite directly on the Xilinx U50/U50LV FPGA boards.
Vendor: Edgecortix Inc
Last Update: February 10, 2020
Size: 1 GB
Container Version: f100_u50_v1.0
Obtain an entitlement to evaluate or purchase this product.
Begin a free trial and run the application example below.
View and purchase available pricing plans for this application.
This application is containerized and can be easily run in a few minutes in the cloud, or on-premises.
Follow the instructions based on your deployment method.
An access key is required to authenticate a user and grant them access to the application based on their entitlements. To obtain your account access key, follow these steps:
Note: The resulting access key will enable all entitlements within your account. If you have not yet obtained entitlements from the “TRY OR BUY” section above, you must do so before following these steps for generating your access key.
Ensure that the U50 board installed on the machine is flashed with the xilinx_u50_gen3x16_xdma_201920_3 shell, and XRT 2.8.743 is installed. Refer to Xilinx UG1370 document for instructions.
This application assumes your card is in slot "0". Moreover, the instructions in this section should be run as the root user or with sudo, and docker should be installed on the system.
git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git && cd Xilinx_Base_Runtime
./host_setup.sh -v 2020.2 -p alveo-u50
wget https://raw.githubusercontent.com/Xilinx/Xilinx_Base_Runtime/master/utilities/xilinx_docker_setup.sh source xilinx_docker_setup.sh
NOTE: Our docker container deployment has been tested on Ubuntu 18.04. It may work on other versions of Ubuntu and/or CentOS 7.x/8.x, as well, however has not been fully tested.
docker pull xilinxpartners/edgecortix_f100_time:release
docker run -it $XILINX_DOCKER_DEVICES -v /*path*/cred.json:/opt/edgecortix/cred.json xilinxpartners/edgecortix_f100_time:release /bin/bash
Replace *path* in the above command to the correct path for the cred.json file.
Description of command arguments:
-v /*path*/cred.json:/opt/edgecortix/cred.json- Map local cred.json dir : container dir
$XILINX_DOCKER_DEVICES- Variables set by the xilinx docker setup
Comprehensive instructions to create and compile arbitrary neural networks and run them on DNA-F200 can be found at the following address:
As an example, the following instructions will download, compile and run the Resnet 50 script available from that repo:
cd /opt/edgecortix/private-tvm/apps/mera_cpp/ wget https://raw.githubusercontent.com/Edgecortix-Inc/dna-IP-series/main/example/resnet_50.py python resnet_50.py mkdir build cd build cmake .. make ./inference ../resnet50_deploy/
You should get an output similar to the following (the "Took 12.86 msec." shows the end-to-end inference latency):
[22:50:16] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:63: Loading json data... [22:50:16] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:69: Loading runtime module... Found Platform Platform Name: Xilinx INFO: Reading /opt/edgecortix/dna.xclbin Loading: '/opt/edgecortix/dna.xclbin' [ info ] 726 , DRM session 72AF1306F0B91163 created. [22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:74: Loading parameters... [22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:82: Loading input... [22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:114: Warming up... [22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:120: Running 100 times... [22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:127: Took 12.86 msec. [22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:47: max abs diff: 1.17549e-38 [22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:48: mean abs diff: 0 [22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:49: correct ratio: 1 [ info ] 726 , DRM session 72AF1306F0B91163 stopped.