电子工程学生
同学你好,我也做过类似的FPGA加速项目,分享一下我的经验。你的困惑很典型,PS和PL任务划分确实需要权衡。我的建议是:PS的ARM核负责系统控制、摄像头驱动、简单的预处理(如缩放、归一化)和后处理(如颜色调整),因为这些任务用C++写容易调试。PL端的DPU专门跑CNN模型,这是核心加速部分。数据流设计上,一定要用VDMA,它是高效搬运视频帧的关键。你可以设置两个VDMA:一个从DDR读数据到DPU,一个从DPU写回DDR。数据格式要统一,比如用RGB或YUV,避免频繁转换。模型方面,轻量级SRCNN或ESPCN都可以,但ESPCN更现代,用亚像素卷积上采样,效率更高。部署步骤:先用TensorFlow或PyTorch训练模型,然后用Vitis AI进行量化(建议用INT8),再编译成DPU能运行的.xmodel。在PS端用Vitis AI的运行时API加载模型并调用。常见坑:数据对齐问题,DPU对输入数据尺寸有要求,预处理时要保证;内存带宽瓶颈,尽量用连续内存访问;实时性测试,要测量帧率是否达标。如果时间紧,可以先从静态图像超分开始,再扩展到视频。
