这是如何为 Alinx 制造的AXU2CGA/B Zynq UltraScale+ FPGA 开发板创建硬件加速器平台的分步教程,该平台 可用于在 Xilinx Vitis 工具集下运行具有加速功能的 GNU Radio 应用程序。
添加 EA4GPZ 开发的gr-satellites并构建您自己的 OOT 模块也包含在这套教程中。
如果你正在寻找这组教程的其他部分,你可以直接去那里:
RF 数据集可以从RF Datasets For Machine Learning网站免费下载。选择RADIOML 2018.01A数据集并下载2018.01.OSC.0001_1024x2M.h5.tar.gz文件。
您应该提供您的联系信息以供下载,但该数据集是免费的。您需要大约 20 GB 的磁盘可用空间来下载。
还有另一个选项可以将数据集的大小减少到仅约 6%。这足以开始。本教程使用精简的数据集(仅约 1.2 GB),可以从随附的 Jupyter Notebook 脚本中提供的链接下载。
这是用于减少原始大型数据集的脚本:
您可以跳过此下载步骤并直接跳到下一步,以防万一您不想下载和使用整个数据集。
否则,如果您想将原始数据集作为一个整体使用,请跳转到Xilinx 教程 - RF 调制识别GitHub 页面并使用他们的原始脚本来构建模型。在这种情况下,您可以跳过本教程的剩余部分。
本教程中提供了两个 Jupyter 脚本。第一个将在Google Colab上运行,第二个将在Xilinx Vitis-AI Docker 映像上运行。
克隆s59mz/test-dpu GitHub 存储库并记下 Jupyter 子目录中的两个 Jupyter 笔记本脚本。我们稍后会需要它。
$ git clone http://github.com/s59mz/test-dpu
$ cd test-dpu/
$ ls jupyter/
rf_classification-Vitis-AI.ipynb
rf_classification-Colab.ipynb
reduce_dataset.ipynb
注意:reduce_dataset.ipynb可用于手动减少原始数据集,如上一节所述。
这是为 DPU 编译模型的非常重要的文件。该文件位于模型目录中:
$ ls models/*.json
models/arch_b1152.json
$ cat models/arch_b1152.json
{"fingerprint":"0x100002062010103"}
注意:指纹可以通过在 FPGA 板上运行以下命令直接从目标板上读取:
$ export XLNX_VART_FIRMWARE=/media/sd-mmcblk1p1/dpu.xclbin
$ xdputil query
注意:编辑arch.json文件并手动更新指纹参数,以防您更改 DPU 构建配置(dpu_conf.vh 文件)
我们将构建的 AI 模型使用TensorFlow框架。我们使用Google Colab服务来训练模型,因为我们可以免费使用他们非常强大的显卡进行计算,但仅限于有限的时间(几个小时)。
在 Colab 断开您与他们的服务之间的连接之前,请务必将您训练的模型下载并保存到您的计算机上。您可以在第二天重复整个过程,任意多次,但每次都必须从头开始。
刚刚发生了什么?
现在,由于我们有一个名为rf-model-best.h5的浮点模型,我们需要对其进行量化、校准和编译,以便在真实 FPGA 的 DPU 单元上使用它。
此过程的详细信息超出了本教程的范围。随意地:
以下是主要步骤:
docker pull xilinx/vitis-ai-cpu:latest
git clone --recurse-submodules https://github.com/Xilinx/Vitis-AI
$ cd Vitis-AI
$ mkdir -p my_model/fp_model
$ cp ~/test-dpu/jupyter/rf_classification-Vitis-AI.ipynb my_model
$ cp ~/Downloads/rf-model-best.h5 my_model/fp_model
$ cp ~/test-dpu/models/arch_b1152.json my_model
$ cd my_model
$ ls
arch_b1152.json fp_model rf_classification-Vitis-AI.ipynb
$ ../docker_run.sh xilinx/vitis-ai
$ jupyter notebook --no-browser --ip=0.0.0.0 --NotebookApp.token='' --NotebookApp.password=''
现在,我们准备在真实硬件上测试模型。
$ pwd
/media/sd-mmcblk1p1/test-dpu/models
$ pwd
/media/sd-mmcblk1p1/test-dpu
$ ./run_test_accuracy.sh
Number of RF Samples Tested is 998
Batch Size is 1
Top1 accuracy = 0.53
再次在 GNU Radio 上启动RF 调制分类应用程序。
$ pwd
/media/sd-mmcblk1p1/test-dpu
$ ./run_rf_classification.sh
如果您成功通过所有四个部分来到这里,恭喜!
随时在此博客上发表评论。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !