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

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

3天内不再提示

RapidStream:FPGA HLS设计的并行物理实现

SSDFans ? 来源:SSDFans ? 作者: EVE ? 2022-05-25 09:50 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA的布局布线软件向来跑得很慢。事实上,FPGA供应商已经花了很大的精力使其设计软件在多核处理器上运行得更快。

最近,在ACM的FPGA 2022会议上发表了一篇题为“RapidStream: FPGA HLS设计的并行物理实现”的论文,论文中描述了一种非常有趣的方法,通过FPGA设计软件推动HLS设计更快地运行在多核处理器上。

这篇论文由UCLA、AMD-Xilinx、根特大学和康奈尔大学的研究团队撰写,描述了RapidStream自动分区算法,将数据流设计分割成多个“island”,在划分的island之间插入“anchor regions”,然后通过anchor regions中的寄存器将每个island的信号连起来整合到整个设计中。

所有这些划分和拼接背后的目的是将HLS设计分割成小块,交付给现代服务器中的多个核心。这种策略已经有悠久的历史,现在被用于加速FPGA的开发。

这个过程有三个主要的HLS级约束:

1、非重叠分区——并行化不同island的物理实现;

2、流水线化的island间连接——每个island间连接都流水线化,以满足时序要求;

3、直接连接——每个island只能与相邻的island直接连接。当并行化设计布局布线时,这个约束是至关重要的。

(注意:这些约束与用于控制逻辑综合的各种约束完全不同,它处于一个更高的层次。)

RapidStream的开发者将数据流设计定义为一组并行处理元素(processing element,简称PE)和一组根据设计的数据流需求将PE连接起来的FIFO。PE内部可以很复杂,但只能通过FIFO接口与其他PE进行数据通信

如上所述,RapidStream将FPGA fabric划分为两种region:大小相同的region和在相邻region之间以窄列和行放置的anchor region。有趣的是,RapidStream似乎是专门为AMD-Xilinx Virtex UltraScale+ FPGA构建的,这是由FPGAchiplet(AMD-Xilinx语言中的超级逻辑区域,简称SLR)制成的2.5D器件。

a247143c-dbbf-11ec-ba43-dac502259ad0.png

这篇论文包含了几个描述RapidStream工作性能的图表。下图显示了在分区后,六种不同的数据流设计与没有分区的流水线/非流水线版本时钟速率的比较。

a2b9d65c-dbbf-11ec-ba43-dac502259ad0.png

从上图可以看出,RapidStream比所有非流水线版本的时钟速率更高。这是意料之中的,因为流水线是FPGA时钟速度改进的核心。然而,六种情况中,有五种情况RapidStream的结果比相同设计的流水线RTL版本要好,这个结果要引起我们的注意。

下面是布局布线的时间结果对比:

a33394ce-dbbf-11ec-ba43-dac502259ad0.png

RapidStream的布局布线运行时间比未分区设计的结果要好得多。这是因为RapidStream可以将每个分区送给不同的处理器核心来布局布线。

虽然FPGA供应商试图让布局布线算法在多核处理器上工作得更快,但RapidStream的开发人员根据经验发现,如果FPGA设计没有分区,在超过两个处理器核心上运行AMD-Xilinx Vivado设计工具时并没有太大改善。

如果有读者正在用FPGA开发HLS设计——特别是AMD-Xilinx FPGA,那么应该会对RapidStream感兴趣。更细节的内容可以在GitHub上找到。

原文标题:HLS分区加速FPGA布局布线!

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

审核编辑:汤梓红

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

    关注

    1646

    文章

    22070

    浏览量

    619738
  • Xilinx
    +关注

    关注

    73

    文章

    2185

    浏览量

    125726
  • 布局布线
    +关注

    关注

    1

    文章

    89

    浏览量

    15396
  • HLS
    HLS
    +关注

    关注

    1

    文章

    133

    浏览量

    24960

原文标题:HLS分区加速FPGA布局布线!

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 ?1241次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速<b class='flag-5'>实现</b>

    如何在Unified IDE中创建视觉库HLS组件

    最近我们分享了开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE)和开发者分享|AMD Vitis HLS 系列 2:AMD
    的头像 发表于 07-02 10:55 ?577次阅读
    如何在Unified IDE中创建视觉库<b class='flag-5'>HLS</b>组件

    使用AMD Vitis Unified IDE创建HLS组件

    这篇文章在开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE) 的基础上撰写,但使用的是 AMD Vitis Unified IDE,而不是之前传统版本的 Vitis HLS
    的头像 发表于 06-20 10:06 ?1092次阅读
    使用AMD Vitis Unified IDE创建<b class='flag-5'>HLS</b>组件

    如何使用AMD Vitis HLS创建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 来创建一个 HLS IP,通过 AXI4 接口从存储器读取数据、执行简单的数学运算,然后将数据写回存储器。接着会在 AMD Vivado Design Suite 设计中使用此 HLS
    的头像 发表于 06-13 09:50 ?757次阅读
    如何使用AMD Vitis <b class='flag-5'>HLS</b>创建<b class='flag-5'>HLS</b> IP

    并行CRC实现

    电子发烧友网站提供《并行CRC实现.pdf》资料免费下载
    发表于 05-20 17:26 ?0次下载

    Linux系统中通过预留物理内存实现ARM与FPGA高效通信的方法

    管理子系统管理。因此,需要预留一部分物理内存,使其不被内核管理。接下来将为大家详细介绍在 Linux 系统中通过预留物理内存实现 ARM 与 FPGA 高效通信的方法,预留
    的头像 发表于 04-16 13:42 ?726次阅读
    Linux系统中通过预留<b class='flag-5'>物理</b>内存<b class='flag-5'>实现</b>ARM与<b class='flag-5'>FPGA</b>高效通信的方法

    Vivado HLS设计流程

    为了尽快把新产品推向市场,数字系统的设计者需要考虑如何加速设计开发的周期。设计加速主要可以从“设计的重用”和“抽象层级的提升”这两个方面来考虑。Xilinx 推出的 Vivado HLS 工具可以
    的头像 发表于 04-16 10:43 ?825次阅读
    Vivado <b class='flag-5'>HLS</b>设计流程

    如何使用FPGA驱动并行ADC和DAC芯片,使用不同编码方式的ADC与DAC时的注意事项

    ADC和DAC是FPGA与外部信号的接口,从数据接口类型的角度划分,有低速的串行接口和高速的并行接口。FPGA经常用来采集中高频信号,因此使用并行ADC和DAC居多。本文将介绍如何使用
    的头像 发表于 03-14 13:54 ?1268次阅读
    如何使用<b class='flag-5'>FPGA</b>驱动<b class='flag-5'>并行</b>ADC和DAC芯片,使用不同编码方式的ADC与DAC时的注意事项

    FPGA+AI王炸组合如何重塑未来世界:看看DeepSeek东方神秘力量如何预测......

    ,涵盖了通信、人工智能、工业自动化、视频处理等多个领域: ? 通信行业:用于基站、网络边缘计算等场景,处理复杂的物理协议和逻辑控制。 ? 人工智能:FPGA并行处理能力使其在高性能计算应用中表
    发表于 03-03 11:21

    使用HLS流程设计和验证图像信号处理设备

    STMicroelectronics成像部门负责向消费者、工业、安全和汽车市场提供创新的成像技术和产品。该团队精心制定了一套通过模板实现的High-Level Synthesis(HLS)高层次综合流程,使得上述产品能够迅速上市。对于汽车市场,该流程符合ISO 26262
    的头像 发表于 01-08 14:39 ?726次阅读
    使用<b class='flag-5'>HLS</b>流程设计和验证图像信号处理设备

    基于FPGA实现图像直方图设计

    简单,单采用FPGA实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像的加速处理。但这暂时不是我的重点。 用C语言
    的头像 发表于 12-24 10:24 ?827次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>图像直方图设计

    助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4

    受限的设备上运行,尤其在低功耗、实时检测的边缘计算设备中表现出色。相比传统 GPU,FPGA 能在小面积和低功耗下实现类似的推理性能,非常契合 AIoT 应用。像米尔 ZU3EG 这样的 FPGA
    发表于 12-06 17:18

    SATA主机协议的物理层的实现过程

    这里讲解SATA主机协议的物理层的实现过程。
    的头像 发表于 10-22 15:17 ?1064次阅读
    SATA主机协议的<b class='flag-5'>物理</b>层的<b class='flag-5'>实现</b>过程

    如何在FPGA实现按键消抖

    FPGA(现场可编程门阵列)中实现按键消抖是一个重要的设计环节,特别是在处理用户输入时,由于物理按键的机械特性和电气特性,按键在按下和释放的瞬间会产生抖动现象,这种抖动可能导致系统错误地识别为多次
    的头像 发表于 08-19 18:15 ?3666次阅读

    优化 FPGA HLS 设计

    减少错误并更容易调试。然而,经常出现的问题是性能权衡。在高度复杂的 FPGA 设计中实现高性能需要手动优化 RTL 代码,而这对于HLS开发环境生成的 RTL 代码来说是不可能的。然而,存在一些解决方案
    发表于 08-16 19:56