APP下载

基于FPGA的可重构加速体系结构的应用分析

2018-12-28张晋荣刘靖宇

移动信息 2018年1期
关键词:体系结构加速器线程

张晋荣 刘靖宇



基于FPGA的可重构加速体系结构的应用分析

张晋荣 刘靖宇

河北工业大学计算机科学与软件学院,天津 300401

随着大数据、人工智能时代的到来,传统计算机架构已然无法满足计算密集型和数据密集型的运算。FPGA是一种无指令、无共享内存的体系结构,其内部包含大量的可编程的配置重构电路,可快速实现相关加速算法。采用FPGA进行相关加速体系结构的构建,可满足日益增长的数据处理需求。因此,介绍了FPGA的特点并对其在各个领域中的应用进行分析。

FPGA;可重构计算;算法加速

引言

随着机器学习、人工智能等大数据应用的兴起,数据密集型的高性能计算越来越受到人们的关注。传统的CPU架构难以满足爆炸式数据的处理需求。FPGA(Field-Programmable Gate Array)本质上是一种无指令、无共享内存的体系结构,能通过配置内部资源,快速组成相应的可重构硬件,优化系统性能。因此,基于FPGA的加速算法研究和加速体系结构研究已经成为工业界和学术界的热点。

1 FPGA概述

FPGA是在CPLD等可编程逻辑器件的基础上进一步发展起来的产物。在数字电路中对于一个n输入的逻辑单元单元来说,不管经过怎样的运算,最多只有2n种结果。所以如果事先将结果存入一个存储单元(查找表)中,通过输入的内容在存储区域查找对应的输出内容即可实现与非门电路功能。FPGA的原理也是如此,可以通过修改存储单元的内容将FPGA配置成不同的硬件。FPGA芯片主要由6部分组成:可编程IO单元、可编程逻辑单元、全局时钟管理、嵌入式RAM、布线资源以及内嵌的底层功能和专用硬件模块。

2 FPGA应用分析

2.1 FPGA云计算平台

2011年,微软公司启动了CataPult项目,利用FPGA在AI的相关服务上提供算法优化。此项目大致经过了三个阶段:第一个部署阶段中,微软采用给每个超级计算机插入多个FPGA卡,但这一方法造成了FPGA之间难以通行,传输延迟较大等问题。第二个部署阶段中,为了保证数据传输稳定,不和PC机产生冲突,在每台计算机中只插入一块FPGA板卡,并在FPGA间使用专用的网线连接。通过这种方式,微软加速了Bing的搜索。第三个部署阶段中,微软把FPGA部署在网卡和交换机中间,将硬件变成一种云计算服务平台,这极大地刺激了各个科技公司对FPGA的关注,推动了FPGA的应用。

2017年1月,腾讯公司推出了高性能异构计算基础设施——FPGA云服务,解决了由于移动互联网快速增长带来的社交软件的图像处理问题。与此同时,阿里巴巴发布了FPGA云方案,随后百度在卷积神经网络、图像分类、解密加速等研究领域中发布了相关的FPGA平台。中国科学技术大学的研究人员提出了单FPGA上面向服务的异构多核可重构片上计算系统——SOMP。此架构一方面集成了各种不同类型的硬件资源,充分利用了MPSOC的优势,实现了较高的计算性能;另一方面,调整了软硬件任务划分和策略,提高了吞吐率和任务的并行执行,方便上层开发者使用硬件资源[1]。

2.2 操作系统

在操作系统方面为底层的可重构硬件逻辑提供了通用的编程接口和编程模型,方便上层应用软件开发人员使用。David Andrews等人针对可重构系统提供了统一的多线程模型Hthread,将运行在通用处理器上的线程定义为软件线程,将运行在可重构资源上的线程定义为硬件线程,通过操作系统对软硬件线程进行集中管理,屏蔽了软硬件之间使用的差异性。FPMR提出了MapReduce框架,将任务管理、通信和同步等功能进行封装,方便使用者使用硬件资源,此框架对部分应用(RankBoost、SVM、PageRank等算法)有较好的加速效果[2]。

2.3 面向各种特定算法

2.3.1 神经网络加速算法

神经网络在近年来的大数据应用中已经成为一个研究热点。由于对计算时间的要求不断提高,国内外学者越来越热衷于实现用于神经网络的加速器。ESE提出了稀疏LSTM高效语言识别引擎,在硬件上实现了深度学习算法。Nurvitadhi研究了循环神经网络变体,提出并设计了根据高层次神经网络模型可自动生成可综合的FPGA加速器的框架DNNWeaver[3]。Escher提出了一个基于FPGA的CNN加速器——Escher,为其配备了一个灵活的数据缓冲区,实现了输入内容和权值转换之间的带宽平衡,有效降低系统总体带宽的需求。ISAAC提出了一种针对卷积神经网络的加速器,采用eDRAM来作为流水数据跨时钟域的寄存器,以此实现基于运算流水线的神经网络加速运算。

2.3.2 生物信息加速算法

伊利诺伊大学厄巴纳-香槟分校的科研成员使用成对的HMM算法实现DNA变异识别的加速器。在Pair-HMM中有插入、匹配、删除三种状态。南卡罗来纳大学的研究人员通过改变NCBI BLAST算法并用FPGA实现,研究人员把使用的数据库转化为三层表组成的算法实现索引,其中前两层数据存储在FPGA中,最后一层数据存储在外存储器中,此方法大大减少了IO请求次数[4]。加州大学的开发人员使用FPGA实现基因片段中的硬件查询阶段的加速器。在查询阶段主要的问题是:第一,如何处理大量短序列匹配;第二,如何消除频繁访存。研究人员通过多个PE组成的体系结构实现该加速器。

2.3.3 数据库算法加速算法

传统数据库在处理复杂操作时效率低下,因此Rene Mueller等在2010年指出可以将FPGA运用在数据库中,加速数据库的查找、增删等操作。哈希操作在数据库应用中是一个很频繁的操作,利用FPGA加速哈希操作可以实现整个哈希系统。这一技术已经在网络中得到广泛使用。Muhsen Owaida等人提出了Centaur算法,把FPGA加速器表示成一个硬件线程集成到数据库引擎中,实现FPGA的灵活体系结构,允许数据库可以混合并行执行[5]。

3 结束语

随着人工智能、大数据的发展,数据密集型和计算密集型的应用给传统计算机带来巨大的负担,人们将更多的注意力转移到计算机体系结构的研究,以寻求相应的突破。FPGA在加速特定算法、操作系统资源调度等方面有较大的应用前景,也为其硬件资源的使用者提供了方便的接口。

[1]冯晓静.面向服务的异构多核片上系统的关键技术研究及实现[D].北京:中国科学技术大学,2013.

[2]Shan Y,et al. FPMR:MapReduce framework on FPGA[C]// the 18th annual ACM/SIGDA international symposium on Field programmable gate arrays,2010.

[3]Sharma H,et al. From high-level deep neural models to FPGAs[C]// Microarchitecture(MICRO),49th Annual IEEE/ACM International Symposium,2016.

[4]Bradshaw J A,R Karakchi,J D Bakos. Two-Hit Filter Synthesis for Genomic Database Search [C]//24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM),2016.

[5]Owaida M,et al. Centaur:A Framework for Hybrid CPU-FPGA Databases[C]// IEEE International Symposium on Field-Programmable Custom Computing Machines,2017.

Application Analysis of Reconfigurable Acceleration Architecture Based on FPGA

Zhang Jinrong Liu Jingyu

School of Computer Science and Engineering, Hebei University of Technology, Tianjin 300401

s: With the advent of big data and artificial intelligence, traditional computer architectures have been unable to satisfy computationally intensive and data-intensive operations.The FPGA is a kind of no instructions, no shared memory architecture, its internal contains a large number of programmable reconstruct circuit configuration, which can quickly implement the accelerate algorithm. Using FPGA to accelerate the building of architecture can meet the increasing data processing requirements.The paper introduces the characteristics of FPGA and analyzes its application in various fields.

FPGA; reconfigurable calculation;accelerate algorithm

TN79+1

A

河北省高等学校科学技术研究项目资助(QN2014192);河北省科技计划项目(15210325);河北省自然科学基金(F2016202145)。

猜你喜欢

体系结构加速器线程
莫比斯加速器众创办公空间
知识快餐店 科学加速器
基于思维导图的化学知识体系结构构建
实时操作系统mbedOS 互斥量调度机制剖析
浅析体育赛事售票系统错票问题的对策研究
全民小康路上的“加速器”
基于PPP工程采购模式的工程项目合同体系结构研究
足球机器人并行行为组合控制体系结构分析
Acoustic Characteristics of Advertisement Calls in Babina adenopleura
计算机中的多线程问题