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
    +关注

    关注

    1664

    文章

    22571

    浏览量

    640770
  • Xilinx
    +关注

    关注

    73

    文章

    2209

    浏览量

    132188
  • 布局布线
    +关注

    关注

    1

    文章

    90

    浏览量

    15543
  • HLS
    HLS
    +关注

    关注

    1

    文章

    135

    浏览量

    26036

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA的DAQ系统|实现高性能数据采集的挑战

    的性能和灵活性备受关注。FPGA,就像一块可以根据我们需求“变形”的芯片,可高速并行处理大量数据,实现传统处理器难以达到的低延迟和高性能,使其在需要高吞吐量和精确
    的头像 发表于 03-30 15:38 704次阅读
    基于<b class='flag-5'>FPGA</b>的DAQ系统|<b class='flag-5'>实现</b>高性能数据采集的挑战

    倒计时开始!Embedded World 2026,Enclustra邀你见证FPGA/SoC与物理AI的未来

    你是否想过,一座城市如何实时“看见”每个街角的人流、车流,甚至自动识别突发状况?当AI从云端下沉到边缘,FPGA物理AI的结合正在让这一切成为现实。2026年3月10日-12日,全球嵌入式顶级盛会
    的头像 发表于 03-05 07:33 460次阅读
    倒计时开始!Embedded World 2026,Enclustra邀你见证<b class='flag-5'>FPGA</b>/SoC与<b class='flag-5'>物理</b>AI的未来

    ADI发布物理智能在2026年实现落地的五大预测

    人工智能(AI)正迈入一个全新阶段——模型不仅能理解情景化数据,还能与物理世界进行实时交互。在ADI,我们称之为“物理智能”:即智能系统能够在运动、声音、空间或其他真实物理场景(如时序采样)中
    的头像 发表于 02-28 11:12 1137次阅读

    超级电容恒流放电怎么实现

    FPGA通过多通道并行、纳秒级采样与PI闭环,实现超级电容恒流放电与均压,提升效率与寿命。
    的头像 发表于 02-12 09:28 514次阅读
    超级电容恒流放电怎么<b class='flag-5'>实现</b>

    HLS设计中的BRAM使用优势

    高层次综合(HLS)是一种将高级编程语言(如C、C++或SystemC)转换为硬件描述语言(HDL)的设计方法。在FPGA设计中,设计者可以灵活地利用FPGA内部的资源,如块RAM(BRAM)。虽然
    的头像 发表于 01-28 14:36 494次阅读

    通过vivado HLS设计一个FIR低通滤波器

    Vivado HLS是一款强大的高层次综合工具,可将C/C++代码转换为硬件描述语言(HDL),显著提升FPGA开发效率。
    的头像 发表于 01-20 16:19 622次阅读
    通过vivado <b class='flag-5'>HLS</b>设计一个FIR低通滤波器

    RapidIO标准的串行物理实现

    Serial RapidIO(SRIO) 特指 RapidIO 标准的串行物理实现
    的头像 发表于 12-09 10:41 778次阅读
    RapidIO标准的串行<b class='flag-5'>物理</b>层<b class='flag-5'>实现</b>

    MarketsandMarkets FPGA行业报告,2026~2030 FPGA市场洞察

    ,Field-Programmable Gate Array)是一种高度灵活、可重构的集成电路。与传统 ASIC 不同,FPGA 制造完成后仍可以在终端重新编程,在 高性能并行计算、实时信号处理、通信加速 等领域具有独特优势。   根据 Mark
    的头像 发表于 11-20 13:20 937次阅读
    MarketsandMarkets <b class='flag-5'>FPGA</b>行业报告,2026~2030 <b class='flag-5'>FPGA</b>市场洞察

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平
    发表于 11-19 06:55

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 4642次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上<b class='flag-5'>实现</b>SRAM的读写测试

    Kintex UltraScale 纯 FPGA 开发平台,释放高速并行计算潜能,高性价比的 FPGA 解决方案

    璞致电子PZ-KU060-KFB开发板采用Xilinx Kintex UltraScale KU060芯片,提供高密度并行计算能力,配备4GB DDR4内存、20对GTH高速收发器和多种扩展接口
    的头像 发表于 08-18 13:28 995次阅读
    Kintex UltraScale 纯 <b class='flag-5'>FPGA</b> 开发平台,释放高速<b class='flag-5'>并行</b>计算潜能,高性价比的 <b class='flag-5'>FPGA</b> 解决方案

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

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 2690次阅读
    基于<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 1750次阅读
    如何在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 2688次阅读
    使用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 2403次阅读
    如何使用AMD Vitis <b class='flag-5'>HLS</b>创建<b class='flag-5'>HLS</b> IP