BUAA-FPGA多核并行计算-Exp4
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《FPGA多核并行计算》课程的实验报告记录,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
使用FPGA加速编译后的深度学习模型
实验分析
本实验依赖实验 3.2 所配置的宿主机、远程 FPGA 的 TVM-09c 环境,并以成功编译后的设备环境为基准进行后续实验。
启用 TVM 环境
虽然我们已经编译了 tvm 的 .so
文件,但在再次使用前仍需配置其环境变量与路径(宿主机和远程 FPGA 均需要),宿主机的配置参考如下:
export TVM_HOME=<tvm root> |
此时宿主机可以在 python 文件中正常 import tvm
实现 tvm 的引入。
远程开发板也需要配置相应的变量:
export TVM_HOME=<tvm root> |
此时远程开发板应该能够启动 RPC 服务器,请注意需要修改启动脚本 start_rpc_server.sh
中启动的服务端口以满足课程实验平台的需求:
cd /path/to/tvm/apps/vta_rpc |
最后一行中修改服务端口:
python3 -m vta.exec.rpc_server --port 9091 |
执行后服务器就已启动在正确端口,可以从宿主机进行访问了
root@PYNQ-19:/home/xilinx/jupyter_notebooks/tvm-09c55fd1f3354d2280bb792a252590ac6bd68e58/apps/vta_rpc# ./start_rpc_server.sh |
设置并运行深度学习模型
环境准备就绪后需要对模型文件作出适当修改,修改细节可见实验总结部分
在环境变量中配置 VTA_PYNQ_RPC_HOST
和 VTA_PYNQ_RPC_PORT
后即可运行脚本进行连接
此刻的开发板:
环境启动后,后续远程开发板加载了 bit
文件执行并返回了结果,结果图像:
实验流程结束
实验总结
总结过程中遇到的报错和重要问题:
OSError: libRemarks.so.9: cannot open shared object file: No such file or directory
:动态库链接失败- 解决方法:配置
export LD_LIBRARY_PATH=<llvm root>/lib
- 宿主机配置文件见仓库文件
.bashrc
- 解决方法:配置
VTA 服务即使指定了
--port 9091
后也无法运行在 9091 端口- 解决方法:
netstat -nltp
查询端口占用情况,发现 9091 端口被服务占用,结束进程释放端口
- 解决方法:
对
deploy_detection.py
文件做出的修改:- 将连接 Github 仓库获取文件的路径改为本地已经提供的文件路径(
yolov3-tiny.cfg
、yolov3-tiny.weights
、libdarknet2.0.so
、coco.names
、arial.ttf
、person.jpg
) - 程序不展示图片,直接保存为文件
# plt.imshow(img.transpose(1, 2, 0))
plt.imsave("./boxed.jpg", img.transpose(1, 2, 0))- 将连接 Github 仓库获取文件的路径改为本地已经提供的文件路径(
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 sin!