首页 > 技术 > 内容

FPGA版通用图形处理架构创新解决方案

时间:2025-12-08  作者:Diven  阅读:0

介绍

“互联网上的整个电子商务世界都是由图形分析驱动的”,因为图形结构可以自然地代表许多重要应用领域的数据集,例如社交网络、网络安全和机器学习。在当前的时代,图形结构呈指数级增长,这就导致了这些应用程序的数据对高性能图形处理产生了迫切的需求。

目前,基于 FPGA 的图形处理加速器的仍在被大量研究;高级图形应用程序与底层CPU-FPGA平台之间仍然存在差距,这需要开发人员了解硬件细节并花费大量精力进行编程(例如使用硬件描述语言编程和进行内存优化)。这一差距在很大程度上阻碍了数据中心应用程序开发人员采用 FPGA。

主角-ThunderGP

ThunderGP 通过为 FPGA 加速图形处理带来性能和可编程性来弥补上述差距。

ThunderGP是基于HLS的开源通用图形处理框架,支持Vitis和SDACcel开发环境,适用于U50、U200、U250和VCU1525等Xilinx Alveo平台(官方开发板)。借助 ThunderGP,开发人员只需编写与硬件无关的基于显式高级语言 (C++) 的 API 的高级函数即可使用FPGA强大的并行处理能力。ThunderGP 在具有多个SLR 的先进 FPGA 平台上自动生成高性能加速器,并管理加速器的部署。

图1:ThunderGP 概述。与 Vitis 和 SDACcel 工具兼容。

ThunderGP 的概述如图 1 所示。我们简要说明主要模块如下:

内置加速器模板。ThunderGP采用Gather-Apply-Scatter(GAS)模型作为各种图算法的抽象,并通过内置的高度并行和高效的内存加速器模板来实现该模型。

自动加速器生成。自动加速器产生可综合的加速器,释放底层 FPGA 平台的全部潜力。除了内置加速器模板之外,还采用图形算法和 FPGA 平台模型(例如 U50)的分散、聚集和应用阶段(来自 GAS 模型)来自开发人员作为输入的用户定义函数 (UDF) 。

图形划分和调度。ThunderGP采用基于目标顶点的垂直分区方法,无需引入边缘排序等繁重的预处理操作,即可通过片上RAM实现顶点缓冲。

高级API。ThunderGP 提供了两套基于 C++ 的 API:用于定制图算法加速器的加速器 API(Acc-API)和用于加速器部署和执行的 Host-API。

有关GAS模型、API以及ThunderGP设计的详细信息,请参考ThunderGP技术报告(附件或GitHub上)。

https://github.com/Xtra-CoMPUting/ThunderGP/blob/develop_u50/docs/ThunderGP_technICal_report.pdf

ThunderGP 有多易用?

我们进行了一个案例研究 - 使用 Vitis 2020.1 对 Alveo U50 板上的 COVID-19 进行预测 - 演示如何将 ThunderGP 轻松应用于现实生活中的图形处理问题。

及时预测人口水平随时间变化的感染流行率对于采取适当的封锁措施(例如隔离或保持社交距离)减轻病毒的传播具有重要作用。目前的传播预测模型一般由空间元胞自动机(CA)和时间易感感染去除(SIR)模型组成,其中元胞代表一个居住区(例如县)并维持其状态(例如感染率), SIR模型根据相邻小区之间的传输来更新。传播可以表述为图形处理问题, SIR 通过图中的传播进行更新。

我们使用 ThunderGP 实现了三种传播模型:CA-SIR [1]、CA-SEIR [2] 和 CA-SAIR [3] 模型。该数据集来自 COVID-19 影响分析平台 [4],包含 3100 个县和 230 万个连接。

在这里,我们展示了清单 1 中为 CA-SAIR 模型实现加速器的示例。在分散阶段,每个县(小区)根据其感染率和连接强度计算感染率并推送到邻近县量化了县际流动的数量和频率。在收集阶段,该县会累积推送给所有感染率。在应用阶段,收集的感染率用于计算感染率。需要注意的是,apply阶段涉及到很多用户自定义的参数(ThunderGP支持apply阶段的用户自定义参数,详细内容参见技术报告)。

50平台上用于加速COVID-19传播预测的用户输入。

图 2 显示了使用公共数据集进行预测一周后感染风险的可视化情况。结果与CPU端执行的开源Python程序[3]相符。

表 1 量化了 ThunderGP 在该任务中所涉及的开发工作,并显示了与基于 Python 的 CPU 实现的性能比较[3]。根据结果,使用 ThunderGP 解决此问题的好处是双重的。ThunderGP比基于 CPU 的解决方案实现了高达419 倍的加速。能够在短时间内预测传播情况有助于对传播情况做出快速、及时的反应。随着对病毒了解的不断深入,CA-SIR模型正在快速发展。使用ThunderGP,开发人员通常只需编写数十行代码即可加速预测一天,从而最大程度地减少了开发工作量。

[1] MA Fuentes et al. PhysICa A: Statistical Mechanics and its Applications, 1999.

[2] José M Carcione et al. A simulation of a covid-19 epidemic based on a deterministic seir model. arXiv, 2020.

[3] Yiwang Zhou et al. A spatiotemporal epidemiological prediction model to inform county-level covid-19 risk in the united states. Harvard Data Science Review, 2020.

[4] University of Maryland COVID-19 Impact Analysis Platform. https://data.covid.umd.edu, 2020-09-10.

审核编辑:黄飞

 

猜您喜欢


1 TL_IPC简介TL_IPC是广州创龙独立开发的一种双核通讯协议,这种开发方式适用于通信逻辑相对简单的双核程序的的开发。相较于syslink,它更简单、直...
2020-08-06 08:34:00
通用二极管作为电子元件中的重要组成部分,具有多项显著优势。工作原理简单,能够有效地控制电流的流动方向,确保电路的稳定性和安全性。通用二极管具备较高的耐压能力和快...
2012-11-05 00:00:00
在现代电力系统中,输电线绝缘子的污秽程度是影响供电可靠性和安全性的关键因素之一。随着工农业的发展和输电电压的提高,污闪事故频发,给电网运行带来了极大的挑战。为了...
2024-08-10 11:05:00
贴片电阻的瓦数,也就是功率,指的是它能安全耗散的最大热量。区分贴片电阻的功率主要通过查看它的尺寸和封装代码。 通常,尺寸越大,功率也越大。常见的贴片电阻尺寸有0...
2025-04-14 15:03:33
贴片电阻通常使用数字编码来表示阻值,常见的有三位数和四位数编码。三位数编码:前两位数字表示有效数字,第三位数字表示10的幂次方。例如,电阻上的标记为102,则阻...
2024-11-29 10:26:07
当今快速发展的科技时代,TSOT5(技术服务与运营技术5.0)逐渐成为行业中的热门话题。它不仅代表了全新的技术服务模式,也预示着未来企业运营和管理的方向。本文将...
2025-02-21 11:13:11
贴片电容和贴片电阻是电子电路中常见的两种元件,外观相似,但功能和特性完全不同。区分可以从以下几个方面入手:1. 外观标识: 电阻一般会在表面印有数字或色环,代表...
2024-11-29 10:26:13
十字槽盘头机螺钉是常见的紧固件,应用于机械、电子和建筑等领域。其规格尺寸通常包括直径、长度和螺纹类型等多个方面。常见的直径有M2、M3、M4、M5等,长度则可以...
2022-07-06 00:00:00
电解电容器是电子设备中常见的元件。工作原理是基于电解质和电极之间的化学反应。本文将详细介绍电解电容器的原理。 电解电容器的基本构造电解电容器由两种电极组成。通常...
2025-04-01 21:31:40
贴片电阻通常使用数字编码来表示阻值,常见的有三位数和四位数两种。三位数编码:前两位数字表示有效数字,最后一位数字表示乘数,即10的几次方。例如,「472」表示4...
2024-11-26 11:29:46