Dynamic Neural Accelerator® DNA-F200 是 Edgecortix 的第二代(F 系列)高性能卷积神经网络 (CNN) 推断 IP,专门针对 FPGA 设计。它针对流媒体数据的超低时延、高能效和高吞吐量工作负载进行了优化。运行速率为 300 MHz,所提供的峰值 INT8 吞吐量为 3.7 Top/s。在 Edgecortix 独有的 MERA™ 数据流编译器的帮助下,在 Xilinx U50/U50LV FPGA 电路板上直接部署采用 Pytorch 和 Tensorflow-lite 等最普及的框架设计的深度神经网络几乎不需要投入任何工作。
供应商: Edgecortix Inc
更新日期: 2020 年 2 月 10 日
大小: 1 GB
容器版本: f200_u50_v1.0
获得评估或购买此产品的权利。
您可免费试用以下示例应用。
查看和购买此应用的可用定价计划。
该应用是容器化的,可以在几分钟内轻松地在云中或本地运行。
本地 | |
---|---|
Alveo U50 查看 & 购买产品 |
|
请按照部署方法进行操作。
需要一个访问密钥来对用户进行身份验证,并根据其权限授予用户应用访问权。要获取您的帐户访问密钥,请按以下步骤操作:
注:生成的访问密钥将启用您帐户中的所有权限。如果您还没有从以上 "TRY OR BUY" 部分获取授权,请先获取授权,然后按照以下步骤生成访问密钥。
请确保机器上安装的 U50 开发板可闪存 xilinx_u50_gen3x16_xdma_201920_3 Shell,并安装了 XRT 2.8.743 。参考 Xilinx UG1370 文档了解详情。
此应用假定您的卡在插槽“ 0”中。此外,本节中的说明应以 root 用户或 sudo 的身份运行,并且应在系统上安装 docker。
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
注:我们的 docker 容器部署已在 Ubuntu 18.04 上测试过。它可能也适合其它版本的 Ubuntu 和/或 CentOS 7.x/8.x,但还没有进行全面测试。
docker pull xilinxpartners/edgecortix_f200_time:release
docker run -it $XILINX_DOCKER_DEVICES -v /*path*/cred.json:/opt/edgecortix/cred.json xilinxpartners/edgecortix_f200_time:release /bin/bash
将上述命令中的 *path* 替换为正确的 cred.json 文件路径。
命令参数描述:
-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创建和编译任意神经网络并在 DNA-F200 上对其进行运行的综合指令可在以下地址找到:
https://github.com/Edgecortix-Inc/dna-IP-series
例如,以下指令将下载、编译和运行该回购协议提供的 Resnet 50 脚本:
cd /opt/edgecortix/private-tvm/apps/mera_cpp/
wget https://raw.githubusercontent.com/Edgecortix-Inc/dna-IP-series/main/example/resnet_50.py
sed -i "s/\"arch\": 100/\"arch\": 200/" resnet_50.py
python resnet_50.py
mkdir build
cd build
cmake ..
make
./inference ../resnet50_deploy/
您应该会看到类似以下内容的输出("Took 8.09 msec." 显示端到端推断时延):
[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 8.09 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.