首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图形处理加速器该怎么设计?

计算机系统要处理图形图像最常用的就是GPU,为了让图计算处理速度更快,可以设计图形处理加速器。现阶段的图加速器构建主要基于现场可编程逻阵列(FPGA)、专用定制电路(ASIC)和基于新型器件的计算存储一体化结构。

1. 基于FPGA的图加速器

现代FPGA具有丰富的计算存储资源,因其低能耗和可重构特性在许多领域都有着广泛的应用。由于FPGA相对固定的资源限制,基于FPGA的图加速器设计的关键在于如何高效地利用片上存储资源和提高片外存储带宽的利用率。

片上访存优化:FPGA片上快速存储(BRAM)的高带宽能够有效缓解图计算高带宽的需求。在理想情况下,如果图数据能够全部放入BRAM,图计算的性能将得到巨大提升,但实际上,FPGA BRAM的容量通常非常有限。因此,提高BRAM的利用率成为提升图计算性能的重要途径之一。如要提高利用率,需要从三个层次进行优化。其一,尽可能地发掘图计算的局部性,将局部性友好的数据存放入BRAM,这通常需要对图数据进行合理的划分。通过细粒度的图数据划分,FPGP和ForGraph提升了片上点数据的复用效率,降低了访存延迟。其二,提升计算单元对BRAM的并行访问粒度,这会涉及对BRAM的内存划分和多端口设计。其三,尽可能地掩盖数据从片外加载到BRAM的延时,这通常需要借助于较好的预取技术来实现。

片外访存优化:相较于片上BRAM,FPGA访问片外存储延时相对较高,如何降低片外访存延迟是提升图计算性能的又一重要途径。现在的设计基本上是通过精心构造的处理流程和访存策略来提高片外存储的带宽利用率,降低片外访存开销。这包括三方面的优化。首先,对执行模型进行优化,例如以边为中心的FPGA流水设计友好的处理模型,可取得较高的带宽,同时还可提升边数据访问的局部性。其次,可采用多个并行访存流水线来提高访存的并行度,从而提升带宽的有效利用率。再次,可对存储接口采取定制化设计,将计算和访存分离,支持多个访存请求的同时处理,提升访存粒度。

2. 基于ASIC的图加速器

不同于FPGA,基于ASIC的图加速器能够在一定程度上摆脱有限资源的限制,根据图应用的实际需求对电路和存储架构进行定制。现有研究从缓存、流水线和并行架构等方面开展。

存设计:为匹配图计算的访存特点,现有工作大多摈弃多级缓存结构,采用快速存储器件缓存局部图数据。例如,Graphicionado使用便签式存储器替代传统缓存,按目标点排序的方式对图进行划分,保证各子图划分内的所有点数据均可存放于片上缓存中。若当前划分处理完毕,片上缓存的数据将被写回,并替换为下一个待处理子图划分。通过将点数据访问转移至片上缓存,Graphicionado显著提升了点数据的访存精度,有效减少了内存带宽的浪费。此外,这种静态替换的方式亦有效缓解数据块频繁替换的问题,显著降低了访存延迟。根据点边数据访问特性的不同设计出了不同的缓存,减少了竞争访存:TuNao是将局部性较好的高度数顶点存放在高速缓冲区中。片上缓存定制化设计可以使得不同的流水模块从专门的缓存中去读取数据,以取得较好的带宽利用率。但是片上缓存大小通常十分有限,这同时也对图划分和模式提出了要求。

流水线设计:流水线定制化设计可从两个角度出发。(1)对图计算系统中的基本操作进行流水化处理。(2)为图计算设计专门的指令流水。例如,Graphicionado需要对图计算访存和计算操作进行细化,并抽象为加速器的执行子模块。为图计算设计专门的指令流水可极大提高执行效率。此外,还可利用矩阵计算的思想设计特定的流水模式。

并行设计:一般通过复制多条流水线或采多处理单元的方式来增加图计算的并行度。前者虽然容易在软件层面上实现,但在硬件设计中却容易带来较大的性能损失。例如,当不同流水线需要同时更新同一数据时,为了保证结果的准确性,这些操作往往需要强制串行化,进而降低整体流水性能后者扩展较为容易,但在数据通信和任务调度上会存在较大开销。由于ASIC设计结构的不可逆性,基于ASIC的多样化需求的图加速器的设计通常较难。

3. 基于新型器件的图加速器

新型存算一体化器件逐步兴起,它们将处理单元内置于存储单元中,大幅提升了数据处理效率及系统扩展性,这也给图加速器的设计带来了新的机遇。例如,混合内存立方体(HMC)通过紧耦合逻辑层内嵌计算能力,存储空间以“vault”为单位进行统一管理。电阻式忆阻器(ReRAM)以阵列的形式组织数据,并通过crossbar获得计算能力。

Tesseract利用HMC中不同的vault来处理不同的子图,类似于分布式处理框架,vault之间通过消息传递机制进行通信。受限于低效的互联交互,Tesseract容易产生通信阻塞,导致较大的通信开销。通过对数据划分进行合理优化,Graph提供了相对高效的互联结构并减少了通信。利用HMC的计算能力,GraphPIM将图计算的原子操作卸载(offload)到HMC进行处理,减少数据移动开销,进而提升性能功耗。借助ReRAM在矩阵运算方面的天然优势,Graph提出了基于稀疏矩阵的图加速器,取得了较好的结果。

4. 图加速器的扩展研究

现有的图加速器主要围绕存储系统的优化展开,取得了明显的进展,但是考虑到图加速器存储容量通常十分有限,当加速器无法容纳整个图数据时,则需要较好的扩展技术来支撑大图数据的处理。通常有两种做法,一种是采用异构计算的思想,借助主机内存或者硬盘来存储大图数据,实现主机和图加速器的协同工作,这种情况需要考虑如何实现主机和图加速器之间高效的存储共享、任务分配和协同调度等问题。另一种方法是对多个图加速器进行扩展互联,将图计算任务分配给不同的加速器来协同处理,但复杂的数据依赖关系容易造成过高的通信开销,亟待研究解决。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200306A0L68000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券