四月中旬,英特尔宣布收购一家名为Omnitek的英国公司,旨在「增强FPGA在视频(video)和视觉(vision)领域的产品组合」。对于很多人来说,Omnitek并不是一个非常熟悉的名字。那么,究竟它为何受到了英特尔的青睐,以及这次收购背后的深层技术逻辑为何,就让老石在本文为大家深入分析。
(Omnitek CEO与创始人,图片来自Omnitek)
Omnitek并不是一个传统意义上的初创公司,它成立于1998年,总部位于英格兰南部的贝辛斯托克(Basingstoke),见下图。
贝辛斯托克这个小城是英国比较有名的经济和科技中心之一,巴宝莉(Burberry)就起源与此。这里集中了不少世界知名的大公司的总部或欧洲总部,其中包括很多半导体和科技公司,比如索尼、摩托罗拉、意法-爱立信等,华为的欧洲总部也曾经设在这个小城。
虽然Omnitek已经成立了超过20年,但员工总数只有四十人左右,也没有公开的融资记录。从这些方面来看,Omnitek只能算是一个中型、甚至小型的公司。
然而,在这20年中,Omnitek开发和积累了超过220个FPGA硬体IP、对应的软体系统、以及开发平台,见下图。
这些FPGA IP主要集中在视频和图像处理领域,包括使用FPGA进行超高清视频图像的旋转、形变、3D映射、编解码等等各类处理,见下图。
这些应用一直是FPGA的传统应用领域,特别是在诸如视频会议、投影、显示屏等场合。因此,就像在公布收购后的官方新闻稿中所说,这次收购将会极大的补强英特尔FPGA在视频和图像处理领域的IP资源。
然而,老石注意到,Omnitek在2018年底发布了一款自研的深度学习处理器(DPU)。与市面上任何基于FPGA的同类产品相比,Omnitek宣称这款DPU的性能有著50%的优势。同时,与GPU相比,这款DPU在给定的功耗或成本限制下也有著更加优异的性能。
在当前各类人工智慧处理器xPU层出不穷的时候,Omnitek这个官宣大胆而自信。老石认为,这也是英特尔收购Omnitek背后的主要逻辑。
获取Omnitek深度学习处理器技术白皮书,及相关幻灯片及视频资料,请在公众号「老石谈芯」后台回复「DPU」
老石在之前的文章《FPGA在人工智慧时代的独特优势》一文中讲过,使用FPGA对人工智慧应用进行硬体加速主要有以下几个优点:
基于这些优点,Omnitek选择使用FPGA作为其深度学习处理器的主要实现平台,这与目前业界包括微软在内的很多公司不约而同,见下图。
事实上,与微软在「脑波项目」中使用的DPU相比,Omnitek的DPU在使用模型上也有著很多相似之处。这类DPU,也称为Soft DPU,最主要的特点就是提供一个基础的硬体架构,用来进行深度神经网路的计算加速;同时提供完整的软体编程介面和编译器,使得上层用户使用高层语言对神经网路进行配置。
这种架构的最主要优点,就是实现了软硬体的完全解耦,这也让使用者无需掌握任何硬体相关的专业知识,从而只需要专注于演算法和模型本身的设计,并可以通过诸如Python、C/C++等高层语言对模型进行调整和配置。
与高层次综合(HLS)相比,这种基于FPGA的DPU设计方法无论在性能、开发敏捷性、编译时间等各个领域都有著明显优势。
与微软DPU相比,Omnitek的DPU又有著自己独有的特点。它的系统架构图如下所示。
可以看到,用户可以使用TensorFlow、Caffe或者OpenVINO等主流机器学习框架构建的模型,或者是自己用高层语言编写的模型,通过DPU编译器生成特定的微代码(Microcode),这与微软DPU采用数据流图的方式不同。这些微代码将被用来配置FPGA上的DPU数据处理流水线,如下图所示。
Omnitek DPU的另一个主要特点是可以通过编程,调整对不同DNN拓扑的支持效率。通常来讲,某种DNN硬体加速器往往是针对某种特定的DNN拓扑设计的。以谷歌的TPU为例,它对于阿尔法狗所使用的CNN模型(CNN0)有著很高的运行效率,高达78.2%,平均性能也可以达到86TOPS,见下图。然而对于另外的CNN模型,如GoogleNet(CNN1),谷歌TPU只能达到46.2%的运行效率,性能也骤降至14.1TOPS。
由此可见,不同CNN模型对於单一硬体架构的实际性能有著很大影响。除CNN之外,诸如RNN和MLP等其他DNN拓扑有著和CNN明显不同的特点。除此之外,随著人工智慧理论研究的不断推进,想必会不断涌现出其他更加新颖的网路拓扑结构。因此,如果使用相同的硬体架构对这些DNN拓扑「一视同仁」,则必然不会得到满意的性能。
对于这种情况,也只有FPGA能够快速调整硬体结构,以适应不同的网路拓扑结构,这是ASIC或GPU都无法实现的。而这也是Omnitek DPU的另一个主要特点。
此外,Omnitek DPU还使用了「片上网路(NoC)」技术,将多个DPU进行互联和数据共享,如下图所示。NoC是目前在大型晶元上进行数据共享和高速传输的新型技术,在赛灵思最新的ACAP架构上,也使用了NoC技术,这在之前的文章中有过深入解读,有兴趣的读者可以看看,在本文中就不再赘述。
性能方面,Omnitek公布了在英特尔Arria10 GX1150 FPGA上实现的DPU性能数据,如下所示。
单就上面的数字来看,特别是TOPS一栏,只能说差强人意。不过性能功耗比(GOPS/W)比较高,能够体现FPGA的低功耗优势。同时考虑到Arria10是一款基于20nm工艺的FPGA,因此可以预期当使用更先进的FPGA,如Stratix 10(14纳米)或Agelix(10纳米)时,上面的数字将无疑会有大幅提升。
事实上,Omnitek也有使用赛灵思16纳米UltraScale+ FPGA所取得的性能结果,比上面的数据有著明显提升,本文不再给出,有兴趣的读者欢迎在老石谈芯后台回复「DPU」查看。
Omnitek作为一家做了20年的视频图像FPGA IP提供商,刚刚切入人工智慧晶元领域,就依托技术积累开发出了地表最强的深度学习处理器,并随后被英特尔收购,这一系列操作实在让人眼花缭乱。
这次收购对于英特尔而言,不仅补强了其在视频和图像处理领域的FPGA IP组合,更是直接得到了Omnitek已经比较成熟的DPU软硬体方案。这无疑进一步扩展了英特尔在人工智慧领域的产品布局和多样性。
Omnitek的官网上列出了很多公司的核心价值观,其中很有趣的一点,就是它允许员工有著灵活的工作时间,因为公司「理解对于所有员工来说,保持『朝九晚五』的工作时间是很困难的」。这在996盛行的今天,无疑更加值得我们思考,工作和生活,哪个才是我们应该追求的福报。
(获取Omnitek深度学习处理器技术白皮书,及相关幻灯片及视频资料,请在公众号「老石谈芯」后台回复「DPU」)
(注:本文仅代表作者个人观点,与任职单位无关。)
本文系老石原创,如需转载请先联系老石获取授权。
关注公众号「老石谈芯」,看更多原创芯文、芯情、芯事
更多晶元与FPGA技术解读,欢迎加入知识星球:「老石谈芯-进阶版」,一个关乎技术与观点的互动社区
推荐阅读: