0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么要为开源重新构建FINN?

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-08 10:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一个用于构建可扩展和FPGA上的快速BNN推理加速器 专门针对量化神经网络 每秒处理数亿次机器学习推断

您听说过 FINN 吗?没有?这个答案并不令人惊讶,因为这是一个用于探索基于 FPGA 的深层神经网络推断的实验框架的全新再实现,而且它现在仍是赛灵思研究实验室 (Xilinx Research Lab) 的测试版。然而, 虽然还是测试版,它已经发布了 v0.4b(测试版),并且自从在 GitHub 上开源以来,受到了广泛关注。

2020 年 5 月,赛灵思研究实验室的论文《FINN-R:快速探索量化神经网络的端到端深度学习框架》获得了计算机协会 (ACM) 可重构技术和系统汇刊 (TRETS) 2020 年年度最佳论文奖 —— 该奖项每年只授予全年论文中的一篇。该论文的第一作者、杰出工程师 Michaela Blott 女士和她的团队在今年夏天的第 57 届设计自动化大会线上颁奖典礼上接受了这一荣誉。该论文的评选引起了人们对 FINN 的更广泛关注:FINN 是什么,为什么选择 FINN,如何实现 FINN?带着这些问题,我们采访了 Michaela Blott 女士。

FINN 是什么?

FINN(神经网络快速推断)是我们的一个旗舰开源项目的名称,是赛灵思研究实验室的一个实验框架,用于探索基于 FPGA 的深层神经网络推断。它专门针对量化神经网络,着重于为每个网络生成定制的数据流式架构。这种形式的高度专业化有助于加速需要更高吞吐量和超低时延的应用。 然而,要实现定制相当困难,而且通常只有专家才可以进行定制。对此,FINN 提供了一个端到端流程,即使是机器学习工程师也可以创建这些高度定制的硬件解决方案,以前馈数据流架构的形式为具有任意精度/任意层的空间展开式卷积神经网络加速器提供支持。它实际上是一种工具流,能够帮助没有硬件专业知识的人员生成高度定制的 FPGA 设计,并从我们的器件所提供的性能和效率中获益。 最初的版本侧重于二进制网络。自此,我们扩展到可支持任意精度 (FINN-R) 并提供更高灵活性的终端架构和目标平台,其中包括给定器件的硬件成本估算。我们在包括 PYNQ 和 Alveo 在内的一系列平台上对各种不同精度的神经网络生成的架构进行了评估,从小型 CIFAR-10 分类器、基于 PASCAL VOC 数据集的 YOLO 对象检测到 ImageNet 分类网络和 LSTM。我们目前正在添加更多极端用例,比如网络入侵检测,在这种情况下,FINN 每秒可以处理数亿次机器学习推断。 如需了解有关 FINN 的更多基本信息,请访问项目页面,查看出版物或一些演示。

FINN 有哪些特性?

●模板化的 Vivado HLS 流组件库:FINN 带有 HLS 硬件库,该硬件库可将卷积,全连接,池化和 LSTM 层分类实现为流组件。该库使用 C++ 格式来支持各种精度。

●超低时延和高性能的数据流:通过为每一层组成流组件,FINN 可以生成加速器,这些加速器可以以亚微秒级的时延对图像进行分类。

●多种端到端的设计示例:我们提供的示例从训练量化神经网络开始,一直到硬件上运行的加速设计。这些示例涵盖了一系列数据集和网络拓扑。

●用于快速生成设计的工具流程:FINN 工具流程支持自动或手动为每层分配单独的计算资源,并生成用于综合的完整设计。这样可以快速探索设计空间。

为什么要为开源重新构建 FINN?

在过去的几年里,爱尔兰赛灵思研究实验室的团队对量化神经网络 (QNN) 进行了大量研究。从 2016 年基于 FPGA 的二进制神经网络 (BNN) 开始,我们已经对量化深度学习的众多方面进行了研究,涵盖从更好的量化方法、混合量化和修剪到精确吞吐量权衡和递归拓扑等众多领域。虽然我们工作的某些演示已经实现开源有一段时间了,但我们希望能更进一步。我们喜欢 QNN,同时也很青睐在赛灵思 FPGA 上为其构建的高性能、高效率的数据流加速器,我们希望您和 FPGA/ML 社区也能这样做。实现这一目标的(协同)设计流程实际上相当复杂,从在机器学习框架中定制神经网络开始,经过涉及众多优化、HLS 代码生成和 Vivado 综合的多个设计步骤,最后得到 FPGA 比特流,可以作为某个应用的组成部分进行部署。其中大量步骤都需要一些手动操作,但是如果能有一个模块化的、灵活的解决方案堆栈来支持您完成这个流程将非常有帮助。这就是为什么我们要从头开始重建我们的 FINN 解决方案堆栈,使其更加模块化。

我们选择 FINN 开源路线的主要原因是为了提供更高程度的灵活性和透明度。机器学习研究进展迅速,因此 FINN 是研究人员可以用来实现最新层类型的工具。

用户如何进一步了解 FINN?

访问 https://xilinx.github.io/finn,我们有一个 gitter channel,您可以在那里提问。您可以使用 GitHub 问题跟踪器报告错误,但请不要以提交问题的形式来提出问题,因为这在 gitter 频道中可以得到更好的处理。此外,我们也衷心欢迎您针对本项目做出贡献,请查看贡献指南和公开问题列表。如果您有任何想法,请随时联系 Gitter 进行讨论。 我们渴望扩大我们的社区,并希望听到您的消息。

为什么开源和神经网络

非常适合赛灵思?

赛灵思提供了可以对其器件进行编程的工具。有了开源,我们就可以充分利用并为世界一流的成果做出贡献。FINN 的量化感知训练库 Brevitas (https://github.com/Xilinx/brevitas)建立在 Pytorch 上,Pytorch 是基于 Torch 库的常用开源机器学习库,用于计算机视觉和自然语言处理。 我们为这个现有的开源框架提供了大量的库,这些库使得对网络的训练可以一直精确到 1 位。这充分利用了 Pytorch 已有的所有优异技术,并使用户群体从量化中获益。此外,将这些网络映射到我们的 FPGA 上的实现工具是开源的,它利用了现有的赛灵思技术,其中包括高层次综合以及基于 FPGA 的布局布线。参见下图。

关于赛灵思实验室

赛灵思研究实验室通过其对公司战略和愿景的贡献占据了技术领先地位。该组织为未来的产品创造新的技术机遇,致力于应对最新涌现的工程挑战,并消除对实现公司业务目标至关重要的技术风险。我们积极地与各个高校、初创企业和采用早期技术的客户建立联系,发现新挑战并获得他们对新想法的反馈。

关于 Michaela Blott 简介

Michaela Blott 是爱尔兰都柏林赛灵思研究中心的杰出工程师,她领导着一个由国际科学家组成的团队,该团队致力于推进激动人心的研究,为赛灵思器件探索全新的应用领域,例如应用于嵌入式和超大规模部署的机器学习。她在德国凯泽斯劳滕大学获得硕士学位,在研究机构(如苏黎世联邦理工学院和贝尔实验室)和开发机构拥有超过 25 年的先进计算机架构以及先进 FPGA 和电路板设计经验。她积极投身于国际研究界,担任 FPL 2018 年的技术联合主席、研讨会组织者 (H2RC、ITEM)、众多欧盟项目的行业顾问、众多技术计划委员会(FPL、ISFPGA、DATE 等)的成员,2015 年获得 WMB 奖,入围 2019 年 VentureBeat Women 人工智能奖,并获得 2019 年女性科技奖。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4829

    浏览量

    106846
  • Xilinx
    +关注

    关注

    73

    文章

    2192

    浏览量

    130015
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136255

原文标题:Xilinx实验室为何为开源而重构 FINN?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么说uCentral是构建开放网络的开源利器?

    uCentral是TIP主导的开源网络管理系统,其核心uCentral Controller通过开放协议实现设备集中管控与自动化运维。该系统支持配置下发、状态监控和闭环自愈,在数据中心场景中要求底层交换机具备NETCONF/YANG、VXLAN等开放接口能力,为构建智能云
    的头像 发表于 11-28 18:33 804次阅读
    为什么说uCentral是<b class='flag-5'>构建</b>开放网络的<b class='flag-5'>开源</b>利器?

    开放原子开源基金会发布2025中国高校开源育人案例集

    “2025中国高校开源育人案例致谢仪式”。此举旨在深化教育界与产业界协同创新,推动开源精神在高校落地生根;推动构建中国高校开源教育全景图谱,筑牢开源
    的头像 发表于 11-25 17:30 567次阅读

    开源鸿蒙技术大会2025丨教育分论坛:开源赋能教育,融合培育未来

    在数字化浪潮与产业升级的双重驱动下,培养具备开源精神与实战能力的高素质技术人才已成为推动技术创新与生态繁荣的关键。开源鸿蒙作为面向万物互联时代的开源操作系统,正持续推动教育模式革新与产教深度融合,为
    的头像 发表于 11-20 17:30 506次阅读
    <b class='flag-5'>开源</b>鸿蒙技术大会2025丨教育分论坛:<b class='flag-5'>开源</b>赋能教育,融合培育未来

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 506次阅读
    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨<b class='flag-5'>开源</b>鸿蒙<b class='flag-5'>构建</b>大会圆满落幕!

    取之于开源,贡献于开源:进迭时空AI计算生态开源贡献

    开放创新是进迭时空的企业价值观之一,公司的软硬件技术栈构建开源之上,同时也积极在操作系统、编译器、AI计算生态等领域为开源做贡献。opencvopencv是最具影响力的机器视觉开源
    的头像 发表于 10-21 09:03 5304次阅读
    取之于<b class='flag-5'>开源</b>,贡献于<b class='flag-5'>开源</b>:进迭时空AI计算生态<b class='flag-5'>开源</b>贡献

    rt-thread studio被排除构建的资源如何启用?

    请问rt-thread studio被排除构建的资源如何启用? 自己新建了两个文件夹,里边写了些应用程序,原本是可以构建的,在点击了RT-Thread Settings在保存后这两个文件夹就被排除构建了,请问应该怎么
    发表于 09-28 07:58

    共谱开源华章 | 匠芯创荣获“开源生态战略合作伙伴”奖

    开源生态的推动者匠芯创凭借与立创开发板共建开源生态,推出衡山派全开源开发板,并开放软硬件资料培养工程师,构建了硬件开源协作创新的标杆,荣获“
    的头像 发表于 08-07 15:37 1087次阅读
    共谱<b class='flag-5'>开源</b>华章 | 匠芯创荣获“<b class='flag-5'>开源</b>生态战略合作伙伴”奖

    开放原子开源基金会与新一批开源项目完成捐赠签约

    近日,在2025开放原子开源生态大会开幕式上,开放原子开源基金会与新一批开源项目完成捐赠签约,涵盖人工智能、具身智能、基础软件、区块链等多个技术领域,为基金会拓展在关键技术领域上的布局。这些项目丰富和完善了
    的头像 发表于 07-28 17:04 817次阅读

    开源+安全双引擎!STM32MPU白皮书解锁可信系统构建新范式

    【嵌入式开发者必读】开源+安全双引擎!STM32MPU白皮书解锁可信系统构建新范式 为什么开发者都在抢读这份白皮书? 当物联网设备面临供应链攻击、固件篡改、合规认证等多重挑战,STM32MPU以
    的头像 发表于 05-16 15:24 439次阅读
    <b class='flag-5'>开源</b>+安全双引擎!STM32MPU白皮书解锁可信系统<b class='flag-5'>构建</b>新范式

    使用RT1060的mcuboot开源sdk示例擦除主插槽中的错误镜像怎么解决?

    插槽:未找到图像 图像 0 辅助插槽:未找到图像 没有要为映像 0 加载的插槽 找不到可启动映像 2. 然后我选择另一个 sdk 示例,在本例中,我选择了 hello world sdk 示例,我构建
    发表于 04-10 08:13

    如意玲珑应用构建规则实用案例

    通过《如意玲珑应用构建指南(二):在玲珑容器中编译基于 Qt5 的开源应用》的学习后,相信大家已经基本了解了在玲珑容器中通过怎样的操作可以将基于 Qt5 的开源应用——qBittorrent 的项目源代码编译为可以运行的二进制程
    的头像 发表于 03-25 11:17 811次阅读
    如意玲珑应用<b class='flag-5'>构建</b>规则实用案例

    如何为Raspbian Bullseye构建开源OpenVINO™?

    为 Raspbian* Bullseye 构建开源OpenVINO™ 的变通方法步骤
    发表于 03-07 07:07

    构建开源OpenVINO™工具套件后,模型优化器位于何处呢?

    构建开源OpenVINO™工具套件后,模型优化器位于何处?
    发表于 03-06 08:18

    构建开源OpenVINO™工具包后,使用MYRIAD插件成功运行演示时报错怎么解决?

    构建开源OpenVINO™工具包后,使用 MYRIAD 插件成功运行演示。 使用 CPU 插件运行演示时遇到错误: Cannot load library \'libarmPlugin.so
    发表于 03-05 09:57