当前位置: 首页 > news >正文

FPGA_YOLO(三)

上一篇讲的是完全映射,也就是block中的所包含的所有的卷积以及归一,池化卷积 举例总共6个等都在pl侧进行处理(写一个top 顶层 里面conv 1 bn1 relu1 pool1  conv1*1   conv 2 bn2 relu2 pool2  conv1*1 ....总共6个 ),最后在送给ps进行解码的。

部分映射

也就是conv 以及relu pool  conv1*1 各个只有一个模块在PL侧 。

当数据在pl侧进行读取时,通过axi协议将采集到的数据送给ps测进行处理的时候,如果接下来进行conv1的话,ps会给pl进行conv1 处理,ps因为是流水操作只等待处理好的卷积1 再进行下次RELU1的操作,依次往后,在进行conv2等等。

在上述处理中会遇到没有数据的时候,因为需要ps是串行等待,而pl是并行操作 

部分映射流程

就是如果对第一图来说 

ps 下达指令需要卷积,送给pl只有一个的conv模块进行处理,处理结束把计算的结果通过axi送给ps。ps在下达指令进行relu,然后再送给PL的RELU模块进行处理,处理完后再送给PS,PS在下达指令进行池化,等等处理完后。在处理第二张图,送给pl只有一个的conv模块进行处理,处理结束把计算的结果通过axi送给ps。依次往后类推

但是完全映射是ps将图片送给PL的 conv 1 bn1 relu1 pool1  conv1*1   conv 2 bn2 relu2 pool2  conv1*1 多个模块进行处理。

 对于分析加速了多少,软件工程师会有一个网络架构,硬件需要实现什么东西,硬件就做,硬件做完后告诉软件工程师输出接口输出的内容。软件工程师调用输出的数据即可。

软件工程师先在ps侧将整个工程进行串行处理有一个结果1.然后再把ps中一些功能用PL侧进行做,得出结果2 ,将结果1与结果2 进行对比就可知结果2 加速了多少。

相关文章:

  • Python使用SVC算法解决乳腺癌数据集分类问题——寻找最佳核函数
  • 【UEFI】关于Secure Boot
  • 2.3.5 覆盖率数据的合并
  • 【前端】使用 HTML、CSS 和 JavaScript 创建一个数字时钟和搜索功能的网页
  • 计算机二级:基础操作题
  • 大模型在支气管哮喘手术全流程风险预测与治疗方案制定中的应用研究
  • 【HTML 基础教程】HTML 编辑器
  • 【Java 优选算法】链表
  • C++:异常的深度解析
  • STM32学习笔记之常见外设汇总
  • 【QA】外观模式在Qt中有哪些应用?
  • 【C++】Chapter02 内存管理
  • 群体智能优化算法-多版本优化器(Multi-Verse Optimizer, MVO,含Matlab源代码)
  • (Arxiv-2025)MagicDistillation:用于大规模人像少步合成的弱到强视频蒸馏
  • notify_one() 会阻塞吗?
  • 5分钟快速上手Docker容器化部署:从零到实践
  • 紧凑交叉引用表
  • 使用XiaoESP32S3在Arduino环境中实现颜色识别
  • 安铂克科技APLC系列射频模拟信号发生器
  • 常见框架漏洞之一:Thinkphp5x
  • 陈颖已任上海黄浦区委常委、统战部部长
  • 视频丨英伟达总裁黄仁勋:美勿幻想AI领域速胜中国
  • 世界黄金协会:一季度全球黄金投资需求同比增170%
  • 五一去哪儿| 追着花期去旅行,“赏花经济”绽放文旅新活力
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 解放日报社论:只争朝夕、不负重托,加快建成具有全球影响力的科技创新高地