|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
首先,编程FPGA的软件栈已经演进了,尤其是在Altera的帮助下,FPGA增加了对OpenCL开发环境的支持。但不是每个人都是OpenCL的狂热粉丝。
先有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供应商英伟达的股票价格节节攀升。
新的CPU架构也不甘落后,纷纷加强了计算能力,比如Intel的AVX扩展指令可以同时处理512bit的计算,硬件上相当于8个32bit的的计算单元。ARM的VFPv3也是专注于计算能力的提升,VFPv3包含了32个64bit的计算单元。当前的CPU基本上都含有多个内核,所以在一颗CPU中总的运算单元大概几十个到上百个。类似的,FPGA也内嵌了这些硬件计算资源,而且应用时间更早。举个例子,Lattice ECP3-150是10年前(2007年)就已经推出的产品,它内嵌了320个DSP硬核,相当于80个32bit的运算单元。而Intel的AVX是2008年才出现。从计算能力上比较,FPGA与新架构的CPU能力相当。虽然计算能力上不及GPU,但是如果考虑功耗的问题,那么FPGA可以甩开GPU好几条街。下面把一些常见的CPU, GPU的性能和功耗列出来供参考。为了便于比较,计算能力统一用G-flops来表示,1 G-flops相当于每秒能完成10亿次浮点运算。为什么要浮点运算呢?因为AI神经网络从输入到输出需要经历很多次乘法和加法运算,很容易产生大数字。如果使用整数来表示,32bit最高范围是10的9次方,超过这个范围就会发生溢出错误。而浮点运算因为是用科学记数法来表示,32bit浮点数最高范围可以到10的38次方,保证绝大部分AI运算不会溢出。
从上面的数据不难看出FPGA兼顾了高运算能力和低功耗的优点。至于GPU,虽然运算能力最强,但是它的功耗几乎相当于半个电饭锅,比较适合在实验室里训练AI。如果放在移动设备上,相当于背着半个电饭锅到处跑,简直就是一背锅侠。一旦AI模型训练好,需要在移动设备上运行,那么FPGA无疑是非常好的选择。
仅极少数手机搭载过FPGA芯片
根据富比士(Forbes)报导,Chipworks表示,这款FPGA芯片是由美国莱迪思半导体(Lattice Semiconductor)所生产,型号为“ICE5LP4K”,主要设计作为配置在手机这类低功耗的装置中。FPGA芯片在经制造及安装至某装置中后,将能够被进行重新配置。
值得注意的是,这类芯片导入资料中心领域则是被运用在加速机器学习(ML)应用上。在智能型手机领域,除了苹果首次将FPGA芯片导入iPhone设计外,最大竞争对手三星电子(Samsung Electronics)早在2014年推出Galaxy S5旗舰机时便开始采用莱迪思半导体的FPGA芯片,当时三星未说明搭载这款FPGA芯片的功用,不过到了Galaxy S6便未再采用。
对于iPhone 7搭载FPGA芯片,市场研究公司Tirias Research首席分析师Kevin Krewell表示苹果此举一反常态,让智能型手机新内建FPGA芯片将增加额外的生产成本,至今仅少数手机有搭载FPGA芯片。
iPhone 7首搭载FPGA芯片
Krewell认为,苹果首度在iPhone上搭载FPGA芯片,准备以此芯片来运行机器学习演算法,有可能是未来将推出与先进健康侦测有关的功能。
其他方面也可能作为尚未发布的虚拟实境(VR)或扩增实境(AR)功能所需的额外影像处理之用。但也有可能该FPGA芯片只是一个临时的应急解决方案,可能苹果最终会在未来的iPhone中改搭载一款专门的芯片。
由于苹果未对外透露该FPGA芯片的功用,因此目前外界仍不清楚该FPGA芯片配置起了何种功用,或iPhone 7是否已有在运用这款芯片,但基于该FPGA芯片可再程式化的本质,未来苹果可能会透过将iPhone 7韧体升级的方式,来改变提升这款芯片的功能。
苹果在iPhone 7系列中新增更多AI元素,例如iPhone 7搭载的先进相机镜头的技术即源自于新款影像讯号处理器的运算视觉演算法,此为苹果内部自有设计专利。
在AI研发上苹果则与Google走不同的路线,更加注重装置本身而非云端运算,苹果的理由是将资料上传至云端,不比直接在装置上运算更具安全及隐私性。
FPGA芯片发展潜力
除了莱迪思半导体外,英特尔(Intel)旗下Altera及赛灵思(Xilinx)两家大型FPGA芯片制造商也生产许多适合用于资料中心的FPGA芯片,这类资料中心便是FPGA芯片开始普及的应用领域,因为FPGA芯片在该领域能够加速机器学习软件。基于此芯片潜力,这也是为何英特尔会在2015年以167亿美元买下Altera的一大主因。
英特尔一直渴望维持该公司在全球资料中心处理器市场的领导地位,因此已开始将其服务器处理器与Altera的FPGA芯片进行配对整合;微软(Microsoft)同样大举投资于生产自有客制化FPGA芯片,借以强化该公司资料中心的AI运算能力。[sub][/sub][sup][/sup][strike][/strike] |
|