PipeCNN
PipeCNN 是一个基于 OpenCL 的 FPGA 卷积神经网络(CNN)加速器,专为大规模 CNN 推理任务设计。它利用流水线化的 CNN 计算核,在 FPGA 上实现高效、可扩展的硬件加速,兼顾性能与资源利用率。面对传统 RTL 设计周期长的问题,PipeCNN 采用高层次综合(HLS)方法,通过 C/C++ 或 OpenCL 编写算法并自动转换为硬件电路,显著提升开发效率。该工具同时支持 Intel OpenCL SDK 和 Xilinx Vitis 开发流程,已在多款主流 FPGA 开发板(如 Arria-10、ZCU102、U50 等)上验证运行,并提供 VGG-16 和 ResNet-50 的预量化模型及 ImageNet 分类演示。虽然其性能已不比当前最先进方案,但 PipeCNN 更侧重于提供一个完整、清晰的开源参考设计,适合 FPGA 与深度学习加速领域的研究人员、开发者或学生用于学习、教学或探索新型硬件加速架构。其核心亮点在于良好的可移植性、模块化设计以及对 OpenCL 跨平台特性的有效利用。
使用场景
某高校边缘计算实验室正在开发一套部署在无人机上的实时图像识别系统,需在功耗受限的嵌入式 FPGA 平台上高效运行 ResNet-50 模型进行目标分类。
没有 PipeCNN 时
- 团队需从零开始用 Verilog 编写 CNN 硬件加速器,开发周期长达数月,且难以复用。
- 缺乏对 OpenCL 的原生支持,无法直接利用已有的 C++ 算法代码,软硬件协同调试效率极低。
- 在 ZCU102 开发板上运行未优化的推理程序,吞吐量不足 5 FPS,无法满足实时性要求。
- 每次更换模型(如从 VGG-16 切换到 ResNet-50)都需要重新设计硬件架构,灵活性差。
- 团队成员需深入掌握 RTL 设计和 FPGA 布局布线细节,学习门槛高,阻碍算法研究人员参与。
使用 PipeCNN 后
- 直接基于 PipeCNN 提供的 OpenCL 内核,在几天内完成 ResNet-50 的部署,大幅缩短开发周期。
- 利用其预量化模型和配套 ModelZoo,无需手动转换权重,软硬件接口开箱即用。
- 在相同 ZCU102 板卡上,借助流水线化卷积核设计,推理速度提升至 22 FPS,满足实时识别需求。
- 通过调整 VEC_SIZE 和 LANE_NUM 等参数,轻松适配不同 CNN 模型,实现“一次开发、多模型部署”。
- 算法工程师可直接使用 C++/OpenCL 编写或修改逻辑,无需深入底层硬件细节,团队协作更高效。
PipeCNN 将 FPGA 上 CNN 加速器的开发从复杂的硬件工程转变为高效的算法驱动流程,显著降低边缘智能系统的落地门槛。
运行环境要求
- Linux
未说明
未说明

快速开始
PipeCNN
关于
PipeCNN 是一个基于 OpenCL 的 FPGA 加速器,用于大规模卷积神经网络(Convolutional Neural Networks, CNNs)。FPGA 社区中正兴起一种趋势:利用高层次综合(High Level Synthesis, HLS)工具来设计和实现 FPGA 上的定制电路。与基于寄存器传输级(RTL)的设计方法相比,HLS 工具通过将高级语言(如 C/C++)编写的算法自动综合为 RTL/硬件,显著加快了硬件开发周期。OpenCL™ 是一种开放且新兴的跨平台并行编程语言,可用于 GPU 和 FPGA 开发。本项目的主要目标是提供一种通用且高效的、基于 OpenCL 的 FPGA CNN 加速器设计方案。PipeCNN 采用 Pipelined CNN(流水线式 CNN)功能内核,以提升推理计算的吞吐量。我们的设计在性能和硬件资源方面均具备可扩展性,因此可部署于多种 FPGA 平台。PipeCNN 同时支持 Intel OpenCL SDK 和 Xilinx Vitis 的 FPGA 设计流程。
使用方法
首先,从 PipeCNN 自有的 ModelZoo 下载预训练的 CNN 模型、输入测试向量和黄金参考文件(具体说明位于每个项目文件夹内的 "data" 文件夹中)。将数据放置到正确的文件夹中。然后,使用提供的 Makefile 编译项目。编译完成后,只需输入以下命令即可运行 PipeCNN:
./run.exe conv.aocx
目前 ModelZoo 提供了以下网络的预量化模型:
- VGG-16
- ResNet-50
更多详细说明,请参阅 用户指南。
支持的工具
目前,我们使用 Intel OpenCL SDK 和 Xilinx Vitis 工具包来编译 OpenCL/HLS 代码,并在 FPGA 上实现生成的 RTL。
- Intel OpenCL SDK Pro v20.1
- Xilinx Vitis 2020.1
已测试的开发板
以下开发板已验证可正常工作:
- Terasic DE5a-net-ddr4(Arria-10 GX1150 FPGA)
- Intel Arria-10 开发套件(Arria-10 GX1150 FPGA)
- Xilinx U50 加速卡(VU35P FPGA)
- Xilinx ZCU102 开发板(ZU9EG FPGA)
- Xilinx ZC706 开发板(Zynq-7045 FPGA)
PipeCNN 也可能在其他 FPGA 开发板上运行,例如 Terasic 的 DE10-standard/DE10-nano、Intel 的 PAC 加速卡、Xilinx Ultra96-v2 开发板等。但由于时间和资源有限,我们尚未验证这些平台。如果您在其他 FPGA 板卡上成功运行 PipeCNN,欢迎与我们分享结果。
演示
现在您可以使用 PipeCNN 在 ImageNet 数据集上运行图像分类,并测量不同 CNN 模型的 top-1/top-5 准确率。
要运行此演示,首先在 Makefile 中设置 USE_OPENCV = 1。其次,下载 ImageNet 验证数据集,解压并将所有图片放入 "/data" 文件夹中。接着,在主机(host)代码中修改变量 "picture_file_path_head",以指向正确的图像数据集路径。最后,重新编译主机程序并运行 PipeCNN。
下图展示了该演示在我们本地计算机上配合 DE5-net 开发板运行的情况。

性能表现
自本项目发布以来已过去四年。深度学习架构(Deep Learning Architecture, DLA)不断发展,许多新技术被提出以提升 DLA 的效率。PipeCNN 的性能已无法与当前最先进的设计相媲美。因此,本项目当前的目标是提供一个完整的设计方案,便于学习 DLA 并尝试新想法。
下表列出了我们在部分开发板上测得的性能与资源消耗参考数据。对于每种 FPGA 器件,用户需进行设计空间探索(调整硬件参数 VEC_SIZE、LANE_NUM 和 CONV_GP_SIZE_X),以找到能最大化吞吐量或最小化执行时间的最优配置。上述开发板的推荐硬件参数汇总见 此处。由于我们持续优化设计并更新代码,下表中的性能数据可能已过时,请使用最新版本获取准确数据。我们也欢迎其他厂商或研究人员提供在其他 FPGA 平台/开发板上的最新性能与资源消耗信息。
| 开发板 | 执行时间* | Batch Size | 消耗 DSP 数量 | 工作频率 |
|---|---|---|---|---|
| DE5a-net-ddr4 | -- | -- | -- | -- |
*注:以 ResNet-50 为基准测试模型,图像尺寸为 227x227x3。
引用
如果 PipeCNN 对您的研究有所帮助,请引用我们的工作:
Dong Wang, Ke Xu and Diankun Jiang, “PipeCNN: An OpenCL-Based Open-Source FPGA Accelerator for Convolution Neural Networks”, FPT 2017.
可通过架构级和算法级优化进一步提升 PipeCNN 的性能。以下列出几项基于 PipeCNN 的最新研究成果供参考:
- 通过引入一种对 OpenCL 友好的稀疏卷积算法提升吞吐量
Dong Wang, Ke Xu, Qun Jia and Soheil Ghiasi, “ABM-SpConv: A Novel Approach to FPGA-Based Acceleration of Convolutional Neural Network Inference”, DAC 2019.
贡献者
以下人员也为本项目做出了贡献:
Diankun Jiang、Ke Xu、Qun Jia、Jianjing An、Xiaoyun Wang、Shihang Fu、Zhihong Bai、Dezheng Zhang。
研究机会
我们的实验室正在寻找对 FPGA 上深度学习算法硬件加速器设计感兴趣且优秀的同学。如果您有兴趣,请发送电子邮件给我。
相关工作
还有其他 FPGA 加速器也采用了基于 HLS 的设计方案。以下列出一些杰出的工作。请注意,PipeCNN 是首个且唯一开源的项目 ( ̄︶ ̄)↗
- U. Aydonat, S. O'Connell, D. Capalija, A. C. Ling, and G. R. Chiu. "An OpenCL™ Deep Learning Accelerator on Arria 10," in Proc. FPGA 2017.
- N. Suda, V. Chandra, G. Dasika, A. Mohanty, Y. F. Ma, S. Vrudhula, J. S. Seo, and Y. Cao, "Throughput-Optimized OpenCL-based FPGA accelerator for large-scale convolutional neural networks," in Proc. FPGA 2016.
- C. Zhang, P. Li, G. Sun, Y. Guan, B. J. Xiao, and J. Cong, "Optimizing FPGA-based accelerator design for deep convolutional neural networks," in Proc. FPGA 2015.
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。