[发明专利]一种基于OpenCL的FPGA图处理加速方法和系统有效
申请号: | 201911029448.5 | 申请日: | 2019-10-25 |
公开(公告)号: | CN110852930B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 廖小飞;赵杰山;郑龙;金海;王庆刚 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06F15/78;G06F9/30;G06F9/38 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opencl fpga 处理 加速 方法 系统 | ||
本发明公开了一种基于OpenCL的FPGA图处理加速方法和系统,属于大数据处理领域。包括:根据反汇编得到的中间代码IR,生成完整的控制数据流图CDFG;对完整的CDFG图,根据Load和Store指令进行重新分块,得到新的CDFG指令块,确定各CDFG指令块之间的并行模式;对所有新CDFG指令块中的Load和Store指令进行分析,确定FPGA片上BRAM的划分方式;采用所述BRAM的划分方式,对FPGA片上内存进行重新组织,根据指令块之间的并行模式,将所有新CDFG指令块翻译成相应的硬件描述语言,编译生成可在FPGA上面运行的二进制文件,烧至到FPGA上面进行运行。本发明采用管道技术和重新调整指令块中指令,减少访存次数,降低访存延时;采用片上存储分块,减少不同流水线对同一个内存块的写冲突,从而提升系统效率。
技术领域
本发明属于大数据处理技术领域,更具体地,涉及一种基于OpenCL的FPGA图处理加速方法和系统。
背景技术
图是一种经典的数据结构,在理论方面有图论领域,同时在现实生活中,很多关系都可以转化抽象为图。比如说电力数据分析、社交网络、交易网络、交通网络等等。人们通过分析网络的特征来获取想要的信息。比如说设计网络中获取哪些人物是“网络红人”,交通网络中获取两个地方的最优路线等等。图计算就是将上述常见的现实问题抽象为几个经典的问题,如SSSP算法即获取两点之间的最短距离,PageRank算法即获取每一个节点的重要程度等。经典的图计算包括PageRank、BFS、DFS、SSSP等。如何快速获取这些图计算的结果是一个具有挑战性的问题。
基于GPU的图计算加速系统,由于使用GPU平台的功耗和能耗过高,而基于传统通用处理器CPU的计算效率有限,因此,为了提高图计算的计算和访存效率,一种基于定制硬件的方式进行图计算加速的方式应用而生。其中包括基于ASIC的图计算加速器和基于FPGA的图计算加速器。虽然基于ASIC的图计算加速器具有更高的计算效率,但是其本身灵活性不足,在面对多种图计算算法的时候,FPGA可重构性的特定更能适应。使用FPGA作为图计算系统的硬件平台相比CPU具有更高的并行度,相比GPU具有更高的能效。
已有的基于FPGA的图计算系统主要有两类,即CPU-FPGA的异构系统以及基于FPGA的图计算系统。基于CPU-FPGA的异构系统主要是考虑到图数据本身的Power-Law特性,其中CPU是一种通用处理器,对计算和访存分散的任务比较友好,而针对计算和访存密集型的任务可以使用FPGA进行加速。首先,FPGA具有大量的可编程逻辑单元,可以针对不同的算法设计特定的片上逻辑,而且这些片上逻辑还可以实现流水线,从而实现高并行度,所以使用FPGA对计算和访存密集型的任务进行加速是非常合理的。然而,如何确定任务是适合在CPU上进行执行还是适合在FPGA上进行执行显得尤为重要和困难。现有的一些策略是根据节点的度数来确定适合在哪种平台上面进行运行,节点的度数很小,意味着是适合在CPU上面进行计算;节点度数很大,意味着适合在FPGA上面进行计算。然而,这种方式有很大的缺点:(1)上述的决策策略是一种静态的方式,对于动态过程中产生的分散节点无法判断。有很多图计算算法是根据节点的收敛与否来确定该节点在下一次迭代过程中是否需要计算。这样就会导致节点度数很大的点在迭代过程中的有效边减少,从而将一个计算或访存密集型的节点变成一个计算或访存分散的节点,从而使系统整体性能变差。(2)CPU和FPGA之间信息的同步。由于CPU负责一部分计算任务,FPGA负责另外一部分计算任务。而且,大部分情况下,这两部分计算任务之间通常有依赖关系或者需要进行信息同步的操作。这时,需要将FPGA或者CPU计算的中间结果通过PCIe总线进行信息的同步。如果说这两部分之间进行频繁的通信,势必会对整体的性能产出很大的影响。基于FPGA的图计算系统是将整个图计算算法通过FPGA上的可编程逻辑单元进行实现。相比于上述的异构执行模式,去掉了通信的开销,然而也带了很多问题:(1)对于计算或者访存不是很密集的任务,浪费了FPGA高并行度的优势。(2)FPGA片上缓存有限,如何在有限资源的前提下达到很高的性能,这对开发用户来说很不友好。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911029448.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带球囊输尿管封堵装置
- 下一篇:待清洗工件的装夹系统及装夹方法