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

pipeline设计总结

一、pipieline的目的

1.pipeline的目的是让II=1或者尽可能的接近1

二、pipeline优化分类
1.对操作或者表达式pipeline
对内置函数单元,例如adder,multiplier,memory进行pipeline
sequence of operations进行pipeline

2.对循环pipeline
对while循环,for循环进行pipeline
对循环pipeline,循环中的迭代草是overlap重叠的

下图的for循环的三种类型的pipeline

第一种,复用加法器

第二种,内层循环全部被展开

第三种,for循环被全部展开

3.function函数的pipeline
函数是overlap重叠的

对function进行pipeline后
如果这个函数run forever and never ends的情况下,
函数是自动rewind的,函数之间的bubble被挤掉了
并且,函数中的所有loops将全部被unroll展开。
pipeline函数可以使用dataflow并行化替代

注意:对function进行pipeline的代价比较大,因为会将所有的loop展开,
所以一般使用dataflow来替代function的pipeline

4.task的pipeline

三、pipeline的flush怎么用

关于pipeline的flush

四、pipeline被限制
1.loop with可变边界会阻止循环pipeline

对于循环边界是变量的for循环,通过优化实现了pipeline功能


2.数据的依赖会阻碍循环pipeline
3.IO的带宽,memory访问速度,bram的port都会阻碍pipline
4.branch控制分支,会阻碍pipeline

参考资料:

1. HLS Textbook. https://www.boledu.org/textbooks/hls-textbook

2. Kastner, R., Matai, J., and Neuendorffer, S.. Parallel Programming for FPGAs. (https://kastner.ucsd.edu/hlsbook/)

3. Fingeroff, Michael. High-Level Synthesis Blue Book. Xlibris Corporation, 2010.

4. Xilinx Vivado Design Suite User Guide: High-Level Synthesis (UG902). (https://docs.xilinx.com/v/u/en-US/ug902-vivado-high-level-synthesis)

5. Xilinx Vivado Design Suite Tutorial: High-Level Synthesis (UG871). (https://docs.xilinx.com/v/u/en-US/ug871-vivado-high-level-synthesis-tutorial)

http://www.cnnetsun.cn/news/138528.html

相关文章:

  • linux——进程状态
  • 推荐一个langchain开发工具包:langchain-dev-utils
  • 有序二叉树节点的删除
  • “即插即用”的智能升级:具身智能模块如何破解机器人产业化难题
  • AI驱动的芯片设计革命:当算法开始替代“老师傅”的经验
  • 基于深度学习的交通标志检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的大豆检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的苹果腐烂检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的食物检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的数字识别检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • STM32定时器定时中断
  • 打破离散制造“内卷”:工业智能体(AI Agent)落地的五大核心原则
  • C语言 操作符 关系操作符 笔记
  • 2025年战略咨询在行业标准演进中的推动力
  • 【电商API接口】电商平台价格监控行业全景:数据驱动的定价革命
  • java计算机毕业设计蔬菜配送系统 生鲜直配平台的设计与实现 社区蔬菜一站式采购与配送管理系统
  • dubbo源码之一次RPC请求的生死之旅(基于Dubbo 2.7.8)
  • 基于SpringBoot+Vue的web城乡居民基本医疗信息管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【完整源码+数据集+部署教程】手势与标志识别检测系统源码[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • 03.统计学机器学习
  • [Poi2011]Lightning Conductor题解
  • 一文读懂大模型:收藏级教程,助你从入门到精通
  • Nginx云计算大数据——安装AND版本升级(普通升级+平滑升级+失败回滚)
  • GPT-5.2 实测数据流出:逻辑推理性能翻倍,大模型“幻觉”真的被终结了吗?
  • SQL SERVER——通过计划任务方式每月对配置数据、审计数据等进行备份
  • 前端——跨平台桌面应用开发实践
  • OpenAI 的反击!GPT-5.2 强行拉开代差,Gemini 3 和 Claude 4 还有机会吗?
  • 零售打工人加薪难?靠这张证,我在激烈竞争里站稳了脚跟
  • 基于springboot的多媒体素材库的开发与应用毕业论文+PPT(附源代码+演示视频)
  • 从离线语音到多模态智能体四博智联 AI 硬件整体解决方案全景解析