FPGA-XCVU33P与人工智能

2023-08-25 09:37:48

FPGA-XCVU33P与人工智能

 

        在人工智能时代,AI的算法不断推陈出新,对于硬件的算力和灵活度要求很高。FPGA-XCVU33P的灵活性刚好符合AI的特性。

 

        通过FPGA-XCVU33P,可以快速开始定制化运算的研究和设计,因为是使用FPGA-XCVU33P,所以,可以保证开发软硬件平台的兼容,如果要获得更高性能,就定制ASIC芯片,如果ASIC过于昂贵,或者硬件产品的需求量不足,也可以继续使用FPGA-XCVU33P。等到应用规模扩大到合适时机,再转换为定制化芯片,以提高稳定性,降低功耗和平均成本。

 

下面,用一个比较成功的项目,来说明一下FPGA-XCVU33PAI领域的应用。

 

一:微软脑波项目

        之前我们了解过微软的Catapult 平台,它为微软积累了丰富的FPGA-XCVU33P开发,部署,运维的相关经验和人才,利用Catapult平台进行AI应用的加速,就成了合理而自然的下一步。

 

        Catapult 平台的第三阶段,成功的构建了遍布全球的FPGA-XCVU33P资源池,并对资源池中的FPGA-XCVU33P硬件资源进行灵活的分配和使用。并且,FPGA-XCVU33P在资源池中已经成功和CPU解藕,可以直接连接数据中心,无需CPU做转发。

 

        FPGA-XCVU33P有低延时,高带宽的效果,很适合传统深度学习模型的运算。我们把DNN模型分解成若干小部分,每个小部分映射到单个FPGA-XCVU33P上实现,然后各部分再通过高速数据中心网络互联,这样,即保证了性能要求,也保持了模型完整性。这就是微软脑波项目的起因。

 

1.1 脑波项目的系统架构

        脑波项目的主要目标,是利用Catapult的大规模FPGA-XCVU33P基础设施,为没有硬件设计经验的用户提供深度神经网络的自动部署和硬件加速,同时满足系统和模型的实时性和低成本的要求。

 

        为了实现这个目标,脑波项目提出了一个完整的软硬件解决方案,主要包含以下三点:

        1: 对已训练的DNN(深度神经网络)模型根据资源和需求进行自动区域划分的工具链;

        2: 对划分好的子模型进行FPGA-XCVU33PCPU映射的系统架构;

        3: FPGA-XCVU33P上实现并优化的NPU(神经网络处理器)软核和指令集。

 

        对于一个训练好的DNN模型,工具会首先将其表示为计算流图的形式,称为这个模型的“中间表示”(Intermediate Representation IR)。

 

        IR表示完成后,工具会继续将整张大图分解成若干小图,使得每个小图都可以完整映射到单个FPGA-XCVU33P上实现。对于模型中可能存在的不适合在FPGA-XCVU33P上实现的运算和操作,则可以映射到与FPGA-XCVU33P相连的CPU上实现。这样就实现了基于Catapult架构的DNN异构加速系统。

 

        FPGA-XCVU33P上进行具体的逻辑实现时,为了解决前文提到的“低延时”与“高带宽”两个关键性需求,脑波项目采用了两种主要的技术措施。

 

        首先,完全弃用了板级DDR内存,全部数据存储都通过片上高速RAM完成。相比其他方案,不管使用ASIC还是FPGA-XCVU33P,这一点对于单一芯片的方案都是不可能实现的。

 

        在脑波项目所使用的英特尔Stratix 10 FPGA-XCVU33P上,有着11721512x40bSRAM模块,相当于30MB的片上内存容量,以及在600MHz运行频率下35Tbps的等效带宽。这30MB片上内存对于DNN应用是完全不够的,但正是基于Catapult的超大规模FPGA-XCVU33P的低延时互联,才使得在单一FPGA-XCVU33P上十分有限的片上RAM能够组成看似“无限”的资源池,并极大的突破了困扰DNN加速应用已久的内存带宽限制。

 

        第二,脑波项目采用了自定义的窄精度数据位宽。这个其实也是DNN加速领域的常见方法。项目提出了8~9位的浮点数表达方式,称为ms-fp8ms-fp9。与相同精度的定点数表达方式相比,这种表达需要的逻辑资源数量大致相同,但能够表达更广的动态范围和更高的精度。

 

        脑波项目的核心单元,是一款在FPGA-XCVU33P上实现的软核NPU,及其对应的NPU指令集。这个软核NPU实质上是在高性能与高灵活性之间的一种折中。从宏观上看,DNN的硬件实现可以使用诸如CPUGPUFPGA-XCVU33P或者ASIC等多种方式实现。在前文中讲过,CPU有着最高的灵活性,但性能不尽如人意;ASIC方案与之相反。而FPGA-XCVU33P能够在性能和灵活性之间达到良好的平衡。

 

脑波NPU的架构图如下所示,NPU的核心是一个进行矩阵向量乘的算术单元MVU。它针对FPGA-XCVU33P的底层硬件结构进行了深度优化,并采用了上文提到的“片上内存”和“低精度”的方法进一步提高系统性能。

 

NPU的最主要特点之一是采用了“超级SIMD”的指令集架构,这与GPUSIMD指令集类似,但是NPU的一条指令可以生成超过一百万个运算,等效于在英特尔Stratix 10 FPGA-XCVU33P上实现每个时钟周期13万次运算。

 

 

 

        脑波项目的性能是不错的,脑波NPU在不同FPGA-XCVU33P上的性能可看出,它与标准的NPU方案性能相当。脑波项目还对微软的必应搜索中的TP1DeepScan两个DNN模型做了加速试验,由于必应对实时性要求高,如果用CPU实现,势必要对模型参数的规模做裁剪,从而影响结果精度,相比之下,使用脑波方案可以实现超10倍的规模,同时获得10倍的延时缩减。


首页
产品
新闻
联系
Powered by MetInfo 7.3.0 ©2008-2021  mituo.cn