赛灵思用“软”实力加速自适应计算平台的推广
不久前,赛灵思推出了Vitis统一软件平台,并宣布其重要组件Vitis AI开放下载,使人工智能(AI)和机器学习开发者将可以利用赛灵思的高性能自适应计算平台的加速度。一家硬件平台公司,为何重磅推出软件平台?为此,电子产品世界等媒体采访了赛灵思软件与 AI 产品市场营销副总裁Ramine Roane(罗明)。
赛灵思 软件与 AI 产品市场营销副总裁 Ramine Roane
1 赛灵思整体的业务战略及对计算的看法
所有的电子系统应该是自适应的,就像是有机物种一样,这样才能跟上创新的速度。同样,“所有的硬件和计算应该是自适应”的观点,也得到越来越多的行业认可。
直到2000年之前,根据摩尔定律,业界还接受着芯片或硅工艺的密度每18个月翻一番的速度,当时所有的应用开发人员和软件开发人员不用做什么,就等着新芯片出现。直到2000年时候,工艺方面的登纳德缩放比例定律(Dennard scaling)走到尽头,认为随着工艺密度的进一步翻番,频率不可能再进一步提高了,所有的CPU和计算机最多也就到(2~4) GHz的速度,而且一直维持了20年没有进一步提升。为了提升所有的应用性能,要进一步扩展,后来使用多核CPU,这个问题从硬件转向软件(如下图)。
之后出现了向异构CPU和加速器的转移,到目前为止,这种方向是可行的。问题在于所有这些架构包括CPU都是固定的,这样就很难跟上AI的创新速度。
赛灵思的思路是打造自适应的平台,非常灵活多变,而且赛灵思的芯片也可针对不同的应用进一步进行硬件的优化。所以现在开发者就不用等着新的芯片出来,就可以建立一些特定架构的应用。
赛灵思提供的解决方案,如何追赶上像AI这样的创新速度?从下图可见,AI的CNN在2012年到2018年发展的趋势,可看出每3个月会出现新的AI模型,会取代之前的模型,一般是1年半到2年的时间来构造1个全新的ASIC或GPU。
从上图可见,蓝色的,之前最主流的是GoogLeNet,1年半到2年后是ResNet,现在ResNet是最尖端的技术,但是没有办法在原有的架构上运行。赛灵思的器件以及可自适应的硬件,就可以来构建这种特有的架构。
2 FPGA的成功案例
第1个例子illumina,是一家生命科学公司,利用FPGA技术可以加速医疗诊断。例如得了重症的新生儿,可以通过加快它的基因组的分析,以前是用1天,现在20分钟就可以进行诊断的判定。
在汽车行业的应用,戴姆勒汽车公司利用赛灵思的技术可以加速实现AI的决策。包括通过赛灵思FPGA的I/O,从不同的传感器(包括摄像头、雷达和激光)获取信息,还可以使用赛灵思的自适应器件,帮助其更快地决策,而且是低延时的。
第3个例子是CERN,是位于瑞士的欧洲核子研究院,它们通过粒子碰撞机、质子碰撞碎片的分析,发现了希格斯的玻色子。这个发现后来夺得诺贝尔奖。需要对碎片进行快速分析得出结论。
3 Vitis和Vitis AI的特点
Vitis的名字来自于法语,意思是生命力,解释到中文也有“至关重要”的意思。
Vitis和Vitis AI开发工具可以助力软件开发人员和AI科学家,用他们选择的语言,例如C++进行开发,也可以使用相关的架构和库进行开发。
1)Vitis针对软件/AI软件的开发人员
不过,对于软件人员和AI人员,赛灵思并不是那么知名,因为过去长久以来,赛灵思的开发工具主要面向硬件的开发人员。随着赛灵思推出Vitis和Vitis AI,想要改变人们对于赛灵思的认识——现在也针对软件开发人员。
而且软件开发人员的机会更多,因为软件人员的倍数大大高于硬件开发人员。现在全球硬件开发者可能是一二十万的规模,而软件开发人员是数以几百万计的。而且现在大学里学硬件开发的已经很少了,大部分人选择学习软件开发。赛灵思的Vivado是针对硬件开发人员的平台,新推出的Vitis和Vitis AI是针对软件开发者以及AI科学家的。
2)Vitis统一了所有应用平台的开发
包括:① 把AI和传统的软件开发统一起来了。②把云和边缘也都统一起来,包括终端计算以及边缘和云计算,不同的架构全都统一起来。③可以使用统一的语言进行异构的加速。
为此,赛灵思已进行了六七年的实践,从最开始的硬件开发平台Vivado,到后面的OS和固件SDK,包括一些嵌入式的软件开发环境,到不同的云计算的开发。亚马逊云计算服务(AWS)成为第1个使用FPGA云服务的提供商,后来BAT(百度、阿里、腾讯)也紧随其后。可见,所有的环境、语言、库不同,针对包括云和边缘,Vitis就是要把所有的这些统一到一个整体的平台上来。
3)Vitis的堆栈
如下图,最下面是基础的硬件的平台,从端点的平台到边缘计算,一直到云。往上的第2层是赛灵思运行时库(XRT),主要管理CPU和FPGA之间的通讯。再上面一层是不同的工具,包括编译器、分析器和调试器,它使用软件语言编译成为FPGA所用的加速语言。
赛灵思建立了很多库,来进行一些加速,包括有OpenCV、金融、BLAS等库。而且这些都是业界标准的加速。这些库当中,很多传统的软件开发人员可能是使用C++或者python语言进行编写的,新的开发人员使用的是一些新的架构和DS的语言。
在AI方面,TensorFlow和python torch是首选的。对于Vitis AI,主要用的是TensorFlow(如上图)。另外,还有视频转码,主要用FFmpeg语言。
赛灵思支持很多库,这对于开发者来说是非常关键的。众所周知,软件开发人员不愿意每次写程序的时候重新开始,他们可以利用现成业界标准的库,利用现成的材料,包括CPU、GPU等,现在还有Vitis来支持他们的工作。
赛灵思现在也在进行一个战略转型:从传统硬件公司转型成为软件的平台公司。赛灵思的理念是拥抱开源,把免费工具贡献给大家。
作为赛灵思转型战略的一部分,赛灵思致力于开源,现在参与了多个开源的项目,赛灵思从2001年时就开始是使用者,2007年的时候成为革新者,2018年是头号的贡献者,第2名是谷歌。
现在赛灵思还有开源库,例如Github,赛灵思还有SRT的运行库,有AI模型的例子,都是经过优化的,可以在FPGA上运行,还有赛灵思收购深鉴科技公司获得的技术。未来赛灵思还会宣布使用和贡献更多的开源项目。
另外,赛灵思还推出了Developer.xilinx.com网站,主要将Vitis专家和相关的开发人员建立起联系,这也是赛灵思转型战略的一部分。2019年11月推出该网站的时候,网站有30多篇文章,现在达到了50多篇,这些文章来自于不同领域的开发人员的专家,在编写应用程序中所提供的一些经验。这些不同的领域,包括汽车行业,还有智慧城市等。
4 Vitis AI的应用案例
一个典型的传统软件开发人员和AI结合的例子。例如对视频的数据进行预处理,然后通过AI进行输出,再进行后处理,预处理和后处理都是软件,中间通过AI。
例如假设开发人员要通过这一条流线以6 FPS(每秒帧)的速度进行显示。如果在CPU上运行,是6 FPS。如果在Vitis数据流流水线中,可以达到80 FPS(如下图)。
具体地,在FPGA或1个GPU上,要对AI进行加速,可以看到从6激增到30这么大的提升。如果是用GPU也就到这么多了,不可能再有更多的改善了。在FPGA上你可以决定对预处理部分加速,还是对后处理部分进行加速。这样就达到了40 FPS。 最下面一行,可以进行流水线的优化处理,不用等着这一帧处理完毕就可以进行下一帧的处理,这样就可以达到80 FPS的速度,而软件层面的开发人员完全没有必要了解这些硬件的技能,就可以达到这样的效果。
早期Vitis和Vitis AI试用的客户,有从事自动驾驶的北京小马智行、汽车一级供应商日立公司的摄像头识别,韩国三星的5G部署等。
5 如何降低FPGA的开发门槛
赛灵思和多个FPGA平台合作,包括AWS,中国有BAT。基本上有两个方法解决这个问题。①通过Vivado,这个比较难,因为涉及到硬件的设计和模拟。②几年前赛灵思推出了SDAccel,它算是Vitis的鼻祖。赛灵思的FaaS(FPGA即服务)合作伙伴现在没有更新它们的系统,预计2020年上半年会全部更新。因为赛灵思的Vitis和Vitis AI库容量非常丰富,所以会帮助他们大幅加速FPGA应用。
实际上,Vitis和Vitis AI是抛砖引玉——采用免费的模式,主要从硬件那边赚取利润。
一个问题是:在深度学习做加速这方面,虽然现在FPGA成长快,但是在AI培训方面,比较主流的还是GPU居多,一方面是因为GPU硬件性能高,另一方面,英伟达在软件工具方面针对各个垂直领域做了很多工作。那么,Xilinx推出Vitis平台之后,是不是有助于加速到各个垂直应用的进程?
Ramine Roane解释道,GPU在AI培训上的市场份额很大,但在AI的推断上面效率并不是很高。AI推断最大的市场份额还是由CPU占据的,不过现在CPU加速的效率还不是很高,例如在边缘的一个案例是北京小马智行公司的自动驾驶,时延是一个很大的问题,GPU最大的问题是时延太高了。不过,过去人们认为FPGA有点难用,需要用硬件开发,所以Vitis、Vitis AI的推出,就是为了降低这个难度。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码
相关文章
-
2024-08-06
-
-
-
-
-
-
-