先有Nvidia为其Tesla GPU加速器创建了自己的CUDA并行编程环境。再有SRC计算机公司不但早在2002年就为国防和智能领域提供混合CPU-FPGA系统,到了2016年年中,进一步将自己研发的Carte编程环境进入了商业市场,这个编程环境可以使C和Fortran程序自动转换为FPGA的硬件描述语言(HDL)。
另一个推动FPGA被采用的因素是随着芯片制造技术难以持续缩进,多核CPU性能的提高越来越艰难。 虽然CPU的性能获得了大跳跃,但主要用于扩展CPU的性能吞吐量,而不是单个CPU内核的个体性能。(我们知道架构增强是有难度的)。但是FPGA和GPU加速器的每瓦性能都有了令人信服的改进。
根据微软的运行测试,在执行深度学习算法的时候,CPU-FPGA和CPU-GPU混合计算在的每瓦性能也不相伯仲。GPU在运行中更热和有类似的每瓦性能表现,但是同时他们也带来了更强的工作能力。
提高了每瓦性能解析了为什么世界上最强大的超级计算机在20世纪90年代后期转移到并行集群,并且解析了为什么现在他们转向了混合机器,而不是英特尔的下一个以 CPU-GPU为混合主力的Xeon Phi的处理器“Knights Landing (简称KNL)。
在Altera FPGA协处理器和Xeon Phi处理器Knights Landing的帮助下,英特尔不但可以保持自己的在高端的竞争优势。并且在与Nvidia 、IBM和 Mellanox组成的Open power联盟竞争中继续领先。
英特尔坚信超大规模计算,云端和HPC市场的工作负载会快速成长。为促进其计算业务继续蓬勃发展。这情况下只能成为FPGA的卖家,否则别人就会抢去这唯一的出路。但英特尔并不是这样跟大家说。他们说:“我们不认为这是一种防守战或者其他,”英特尔的CEO Brian Krzanich在Altera收购消息后的新闻发布会上说。“我们认为物联网和数据中心都是庞大的。这些也是我们的客户想要构建的产品。我们30%的云端工作负载将在这些产品上,这是基于我们对如何看待趋势变化以及市场发展的预测。
这是用来证明这些工作负载能以一种或另一种方式转移到硅中。我们认为最好的做法是使用有业界最佳性能和成本优势的Xeon处理器和FPGA组合。这将给工业领域带来更好的产品和性能。而在IoT中,这将扩展到潜在市场对抗ASIC和ASSP;而在数据中心中,则会将workload转移到硅,推动云的快速增长。
Krzanich解释道:“你可以把FPGA想象成一堆gate,且能够随时编程。根据他们的想法,其算法会随着时间的推移和学习变得更聪明。FPGA可以用作多个领域的加速器,可以在进行加密的同时进行面部搜索,而且能在基本上在微秒内重新编程FPGA。这比大规模的单个定制部件的成本低得多且具备更高的灵活性。”
FPGA在AI中的优势:
现在流行的AI(人工智能)模型基本上都是由人工神经网络构成。这些人工神经网络运行起来都需要庞大的计算。下图是一个简单的人工神经网络结构,可以用它来理解AI需要的计算量。这个简单的模型只有4个输入和和三个输出,每过圆圈代表一个神经单元,相当于一个神经细胞。而每个箭头代表至少一个乘法和加法运算。所以这个超级简单的神经网络每运行一次需要超过18次乘法和加法运算。而上一篇文章演示用的例子则复杂得多,它由16层神经网络构成。其中第一层神经网络需要大约9千万次乘法和加法运算,而第二层神经网络则需要约19亿次乘法和加法。
对于这些庞大的计算,传统计算机的CPU架构已经很难满足要求,很多AI计算都会使用GPU来加速。原本GPU设计出来是为了加快3D图像的处理,它不必像CPU那样需要执行复杂的控制指令,可以把大部分的硬件资源用于计算,所以它的计算能力要远高于集成度相当的CPU。下图中绿色部分的ALU是CPU的计算单元,而同样面积的GPU则几乎被绿色的计算单元占满。也正因为计算能上的巨大差异,前段时间很火的比特币挖矿大量使用了显卡中的GPU来计算。同样也是因为AI应用方面的潜力再加上比特币挖矿的需求,GPU供应商英伟达的股票价格节节攀升。