随着新一波智能数据密集型应用的兴起,基于传统的CPU架构已经无法满足这些新应用中计算需求的指数级增长,推动了对全新的、异构的、带有可编程硬件加速器的计算架构的需求。

eFPGA是embedded FPGA的缩写,用中文理解就是嵌入式FPGA。eFPGA的概念实际上是Achronix Semiconductor提出来的,这家公司成立于2004年,并推出过20nm的Speedster 22i FPGA,代工厂为Intel。

为什么要采用FPGA?硬件加速

以往业界习惯采用独立的FPGA,但却从未考虑将FPGA作为IP嵌入到SOC中。2016年11月,Achronix宣布可提供FPGA IP,可以将FPGA当成IP直接嵌入SOC中,命名为Speedcore eFPGA IP。Speedcore嵌入式FPGA(eFPGA)IP产品可以被嵌入到一款ASIC或者SoC之中,客户通过细化其所需的逻辑功能、RAM存储器和DSP资源,然后Achronix将配置SpeedcoreIP以满足其个性化的需求。Speedcore查找表(LUT)、RAM单元、DSP64单元和定制单元块能够以灵活的纵列方式组合在一起,为客户的应用创建最优化的可编程功能。

在SOC中嵌入FPGA IP相当于增加了SOC在逻辑功能上的灵活性,根据用户需要可以增加或减少SOC的功能;如果FPGA IP资源足够多,可以实现算法加速。

eFPGA1

根据摩尔定律,CPU架构的发展受制于功耗和芯片大小。由于核心数量有限,越来越多的应用需要对某些特定应用进行硬件加速。FPGA的优势在于吞吐量以及并行处理,因此在数据加速方面有独特的优势。

实际上2015年Intel收购Altera,其目的也是用它们的FPGA来做硬件加速。实际上这种CPU+FPGA异构处理得到越来越多的应用,尤其是在数据中心,比如cache缓存、网络数据分析、网页检索和并行运算等等,得到诸如微软、亚马逊、谷歌、Facebook和百度等巨型互联网公司的青睐。

人工智能推动eFPGA发展,Achronix三大产品线介绍

eFPGA2

5G移动通信、高性能计算、网络加速、汽车应用是现在FPGA用于计算加速的主要4大应用,随着网络吞吐量的急剧增长,对于计算能力的需求也是急速增长。所以很多应用需要FPGA来计算。

eFPGA3

据介绍,Achronix现在有三种产品:第一种是独立的FPGA芯片speedster,第二种是嵌入式FPGA内核speedcore,就是eFPGA内核,第三种是FPGA多晶粒组合封装Speedchip。

eFPGA4

据了解,Achronix Speedcore eFGPA嵌入式FPGA可加速数据密集的人工智能(AI)/机器学习、5G移动通信、汽车先进驾驶员辅助系统(ADAS)、数据中心和网络应用;Speedcore custom blocks定制单元块可以大幅度地提升性能、功耗和面积效率,并支持以前在FPGA独立芯片上无法实现的功能。利用Speedcore custom blocks定制单元块,客户可以获得ASIC级的效率并同时保持FPGA的灵活性,从而带来了一种可以将功耗和面积降至最低、同时将数据流通量最大化的高效实现方式。

Speedcore custom blocks定制单元块三大优势?

2017年10月11日,Achronix Fusion定制单元块新产品在深圳深航大厦发布。这个可定制单元块分布在eFPGA内部,可由用户自定义。Achronix宣布为其eFPGA IP解决方案推出Speedcore custom blocks定制单元块。该技术大幅度缩减了芯片晶粒大小及功耗,并提升了性能,可与客户联合定义特定功能性单元块,可分布在整个eFGPA内部结构中。

eFPGA5

Achronix Semiconductor市场营销副总裁Steve Mensor表示,2017年Achronix的销售收入将超过1亿美元,将实现强劲的增长。其中SpeedCore是增速最快的产品。

“业界领袖对Speedcorecustomblocks定制单元块及其可发挥的潜力倍感兴奋,”AchronixSemiconductor市场营销副总裁SteveMensor表示。“目前与我们合作的公司都在打造下一代异构计算平台和高带宽通信系统,他们正在构建高性能的硬件加速器,可以随着其计算算法的演进而不断调整。现在,AchronixeFPGAIP产品在添加了Speedcorecustomblocks定制单元块以后,就使其在拥有可编程性的同时还能够拥有ASIC级的性能以及高片芯面积效率。”

面对新的计算密集型功能,eFPGA数据加速可以说是最优的解决方案。简单来说定制单元块的优势大概包括三点:最小的芯片面积、ASIC级的性能、构建独立FPGA芯片无法提供的功能。

eFPGA6

微软在一个项目白皮书提出一种云规模的加速架构。其中Shell占据了44%的总面积。对于eFPGA来说,可以灵活的处理。中间的应用逻辑电路可以放Speedcore,而周边的Shell可以放到客户的ASIC中。

eFPGA7

对于客户自定义的功能模块可以进一步将芯片面积减少75%,而且功耗更低,性能更高。

eFPGA8

由于减少了大量的shell和IO的面积,Speedcore custom blocks定制单元块相比以往独立的FPGA芯片面积减少了将近6倍。

案例对比:eFPGA与GPU各占优势

eFPGA9 相关应用案例举例:字符串搜索

如果用Speedcorecustomblocks定制单元块来实现,需要并行比较器阵列的大型字符串搜索功能的片芯面积可以缩减超过90%。

桶形移位器(Barrelshifter)和二进制位处理结构也可以在Speedcorecustomblocks定制单元块中完全实现,从而在同样的面积中实现更大的、更精妙的应用,提升了可获得的频率。

一个运行在800MHz的400Gbps包处理数据通道的核心功能也可以用Speedcorecustomblocks定制单元块来实现,其可编程逻辑管理分析和控制功能。今天的FPGA独立芯片不能为包处理应用提供这么高的数据吞吐量。

eFPGA10

以往FPGA都被拿来跟ASIC比较,但是随着人工智能需求的增加,越来越多客户用FPGA来跟GPU比较,来做机器学习和神经网络应用。案例举例:以AI卷积神经网络应用为例,以前需要用到大量的DSP和RAM,经过自定义优化以后,总面积不管是DSP还是RAM都大大减少,整个芯片面积缩减大概35%。通过为矩阵乘法运算优化数字信号处理器(DSP)和存储单元块,基于卷积神经网络(CNN)的YOLO目标识别算法的芯片面积被缩减了超过40%。

eFPGA11

一般通用计算是通过CPU,而数据加速则而通过eFPGA核。GPU功耗较大,相对来说FPGA更灵活,对于特殊应用,吞吐量和并行处理能力更强。FPGA相对于GPU的弱点是,在编程上通过软件就可以实现,相对来说编程难度会大一点。

eFPGA12 案例举例:以线速运行的功能

eFPGA13 案例举例:TCAMS

这是网络应用中的常用功能,包括数据包分类、流量管理等。在独立FPGA上往往无法提供该功能,因为需要用到大量的BRAM和逻辑,占用的面积太大。而通过我们的定制单元块就可以实现。一个TCAMS可以把需要的RAM和logic放到一个模块里面,相比传统的FPGA占用的面积大大缩小。还可以通过多个TCAM来做级联,来构建更深或更宽的阵列。

eFPGA14

“我们的ACE工具可以给独立的FPGA做设计,也可以给我们的SpeedCore做设计。SpeedCore最大可达到200玩个查找表。”STEVE MENSOR表示,Speedcore custom blocks定制单元块由Achronix与其客户共同定义,这需要一个详细的加速工作负载架构分析。随后,Achronix将为客户提供一个用于基准测试和评估的新版ACE设计工具,它包含了带有定制单元块的、新的Speedcore eFPGA。

Achronix的ACE设计工具全面支持Speedcore custom blocks定制单元块,可以与存储器和DSP单元块相同的方式,提供从设计捕获到比特流生产和系统调试等功能。Achronix为每个Speedcore custom blocks定制单元块创建了一种独有图形化用户接口(GUI),它可以管理所有的配置规则。ACE拥有Speedcore custom blocks定制单元块所有配置的完整的时序细节,支持ACE去完成各种设计基于时序的布局和布线。客户可以用强大的版图规划器来优化设计,并为所有的单元实例去制定局域或者定点的任务安排。ACE还包括一个关键路径分析工具,它可以支持客户去分析时序。客户还可以使用ACE强大的Snapshot嵌入式逻辑分析仪,去创建复杂的触发器并展示Speedcore内的实时信号。

本文为国际电子商情(微信公众号:esmcol)原创文章,版权所有!

二维码