随着大数据、人工智能的崛起,算力需求进一步提升,异构架构得到大量应用,多种算法涌现,软件和硬件的结合越来越紧密,尤其随着科技创新速度的加快,对硬件的自适应性要求越来越高。业界急需一款综合平台,打通软件设计和硬件设计之间的壁垒,让两者更快融合,从而提升系统设计效率。

 

赛灵思大中华区销售副总裁唐晓蕾看来,软件定义硬件、自适应计算成为未来的发展趋势,而赛灵思也一直在顺应并推动这一趋势的发展。从 Vivado 设计套件、SDNet 软件定义规范环境,到针对数据中心的 SDAccel 开发环境、面向 SoC/MPSoC 嵌入式 C/C++应用开发的 SDSoC,再到面向云端应用的可重配置加速堆栈的 reVISION 堆栈,赛灵思向着“All-Programmable”一路狂奔。近期,赛灵思新推出的 Vitis 统一软件平台进一步加深了软件设计和硬件设计的融合,让软件工程师“摸着黑”就能做好项目设计。

 

 

顺应三大趋势,Vitis 应运而生

Vitis 一词如何定义?唐晓蕾解释,Vitis 是由法文单词 Vite(快速的)和 vitality(有活力的)构成,合在一起的寓意是“至关重要的生命力”。Vitis 是公司内在的驱动力和未来成长的基石,赛灵思希望用有生命力的产品带给用户有机且有生命力的成长。

 

左:赛灵思大中华区销售副总裁唐晓蕾;右:赛灵思软件和人工智能高级经理罗霖

 

关于 Vitis 的诞生背景,唐晓蕾分析了三大行业趋势:第一是云端到边缘的统一化,原来在云端进行的计算开始向边缘端转移,在转移的过程中发现功耗、计算力是重要因素,但是很多时候难以准确定义到底是在云还是在边缘处理,所以需要一个从云到端的统一解决方案;第二是 AI 激增,随着数据量的激增,如果我们想让产品产生价值就需要 AI 分析,AI 激增带来场景的激增,也需要统一的平台;第三是异构计算,数据增加对计算力要求越来越高,单核算力已经难以满足需求,因此出现 CPU+GPU、CPU+FPGA 等异构计算,赛灵思提出了自适应异构,和传统异构不同,叫做软件感知异构,它通过应用场景决定采用的硬件平台,通过软件做定向动态应用。

 

唐晓蕾表示,我们可以感知到用户是在做人脸识别、语音识别,然后在不改硬件平台的情况下进行处理,完全用软件感知架构,其实就是我们去年十月推出的软件自适应计算加速平台(ACAP),为了配合 ACAP,我们推出了 Vitis,Vitis 统一平台可以说是应运而生。

 

Vitis 统一软件平台是赛灵思历经五年、投入总计 1000 个人工年而打造,无需用户深入掌握硬件专业知识,即可根据软件或算法代码自动适配和使用赛灵思硬件架构。此外,Vitis 平台不限制使用专有开发环境,而是可以插入到通用的软件开发工具中,并利用丰富的优化过的开源库,使开发者能够专注于算法的开发。

 

四层设计,Vitis打破软硬件壁垒

Vitis 平台构建在基于堆栈的架构之上,该架构可以无缝插入到开源的标准开发系统与构建环境,而且最重要的是,它包含一套丰富的标准库。

 

 

第一层即基础层,是 Vitis 目标平台,该平台由电路板和预编程 I/O 构成。第二层称为 Vitis 核心开发套件,覆盖开源赛灵思运行时库,以管理不同域间的数据移动,包括子系统、即将发布的 Versal ACAP 内的 AI 引擎和必要的外部主机。此外,该层也提供编译器、分析器和调试器等核心开发工具。虽然赛灵思提供的是世界一流的设计环境,但是这些工具设计的目的是能与业界标准的构建系统与开发环境无缝集成。

 

在第三层,8 个 Vitis 库提供 400 余种优化的开源应用。这 8 个库分别是:Vitis 基本线性代数子程序(BLAS)库、Vitis 求解器库、Vitis 安全库、Vitis 视觉库、Vitis 数据压缩库、Vitis 计量金融库、Vitis 数据库集和 Vitis AI 库。借助这些库,软件开发者可以使用标准的应用编程接口(API)来实现硬件加速。

 

Vitis 平台的第 4 层,也是最具有变革意义的一层是 Vitis AI。它集成了特定领域架构(DSA)。DSA 提供了针对 AI 模型的硬件实现,开发者可以使用包括 TensorFlow 和 Caffe 等业界领先框架对其进行配置与编程。Vitis AI 提供的工具链能在数分钟内完成优化、量化和编译操作,在赛灵思器件上高效地运行预先训练好的 AI 模型。此外,它也为从边缘到云端的部署提供了专用 API,实现业界一流的推断性能与效率。赛灵思很快还将推出另一个 DSA(Vitis Video),支持从 FFmpeg 直接进行编码并提供同样超级简单且功能极强大的端到端视频解决方案。

 

跳过软硬件互通问题,赋能软件开发人员

用户最关心的莫过于如何通过 Vitis 实现软硬件互通?赛灵思软件和人工智能高级经理罗霖以智慧城市为例进行了详细分析。在智慧城市中,最典型的应用场景就是在一个十字路口实时统计交通流量,包括汽车流量、人流量,用户在系统前端可以采用大量摄像头,实时捕捉视频。在摄像头前端完成部分特征提取工作后,把提取信息传到云端,在云端提取更高层次的信息。

 

在这一应用中,硬件包括摄像头或边缘服务器,硬件开发人员通过赛灵思的板卡可以完成部分 IP 开发,然后交给嵌入式工程师,他们基于赛灵思提供的 Shell 和 Runtime 进行修改,应用工程师可以使用赛灵思经过优化的库,包括 CNN 加速库、数据分析库、数据加速库完成应用开发。算法工程师需要检测到车或者人,他们需要采用 Tensorflow 训练模型。在智慧城市系统里,通过 Vitis 平台可以让所有开发人员在统一平台上协同工作,提升整体开发效率。

 

到底基于 Vitis 怎样能够实现客户的目标性能?第一步,软件开发人员把整个算法以及前后处理在 CPU 上完成,这部分不需要底层硬件开发人员的帮助,采用 Vitis 可以达到每秒 6 帧;第二,把 DPU 放在壳里加速,性能从每秒 6 帧提升到每秒 30 帧。另外,通过一些技巧提升端到端的性能,比如预处理是设计空间转换或者视频缩放,采用 Vitis 库提供一个前处理的优化,把性能从 30FPS 提升到 40FPS,后面可以从 40FPS 再提升到 80FPS。在这一过程中,软件工程师不需要专门插入芯片间隙或者插入数据监测器来获取相关信息,Vitis 可以通过详细的分析报告以友好的图形界面方式呈现。

 

另外一个重要创新是,赛灵思给用户提供了一个集成开发环境,客户可以把里面一些功能完全插入到自己的 IDE 里,调用赛灵思的编译器和调试工具。同时客户也可以使用脚本完成整个应用的开发。赛灵思把工具交给客户,让他们可以无缝集成在自己的开发环境里。罗霖强调,我们的目的是赋能软件开发人员,让他们在自适应开发平台上释放自己创新力的开发工具。我们采用业界熟悉的标准,同时把工具、资源、代码开放给客户,让客户直接使用。

 

软硬件厂商的互相入侵

为了加强软硬件设计融合,英特尔计划在年底发布 One API 测试版本,可以跨不同架构、不同厂商完全开放,可以看出,硬件厂商都非常重视软件平台建设。罗霖认为,业界侧重软件开发工具是大势所趋,特别是从端到云,针对不同的应用场景,要用软件定义硬件,而不是为特定的硬件去优化软件。这就意味着硬件必须是可适应的、灵活多变。赛灵思的架构和器件可以应对这一挑战。同时我们也提供云端,针对不同的 Runtime、不同应用底层硬件的 shell,包括超级延时的、超高吞吐量的,多通道的,还有针对 STM、MLP 的。虽然它是高度适应的,但是必须提供一个灵活丰富的硬件给软件工程师,通过高程的 API 去调用下面的东西,这个理念是一致的,只是不同厂商有不同的实现手段。

 

另外,阿里、亚马逊、百度等互联网公司,除了开发算法也要根据自己的应用场景设计 AI 芯片,软件公司也开始关心硬件性能。针对这一现象,唐晓蕾表示,这是他们的业务需求,因为大型互联网公司面临的场景越来越复杂,促使他们开发 ASIC 应用的 AI 加速芯片。但是,当它的 AI 算法改变的时候,还是需要一个过渡的平台,当它的算法稳定下来以后,才有能力,有固定的应用支持它用 ASIC。我们面对的是所有的开发者,所有的跟 FPGA 应用相关的客户。不管是大型公有云的运营公司,还是互联网巨头,仍然是我们非常重要的合作伙伴,FPGA、ASIC、ASSP 是一个循环重复的趋势。由于摩尔定律慢慢地失效和硬件成本的提升,对 FPGA 是最有利的时代。

 

VivadoVitis如何共存?

用户都知道,赛灵思几年前已经推出了 Vivado 设计套件,那么,Vitis 是否可以完全替代 Vivado?两者各自有着怎样的定位?罗霖解释,Vivado 针对硬件开发,Vitis 针对软件开发,但是软件开发需要硬件承载,因为用户的软件总要运行在特定的硬件平台上,过去用 Vivado 来实现硬件,现在可以在 Vitis 平台里选用已经设计好的 Shell,但是这些 Shell 也是用 Vivado 预先生成的,用户直接调用即可,所以 Vitis 独立于 Vivado 设计套件,后者仍然继续为希望使用硬件代码进行编程的用户提供支持。Vitis 能够通过将硬件模块封装成软件可调用的函数,两者还是相辅相成的关系。

 

 

唐晓蕾总结,Vitis 是一款面向所有开发者的平台,硬件开发者可以在 Vivado 上做开发,软件开发者不需要弄懂 RTL 和 I/O 的使用,通过 Vitis 直接进行设计。AI 科学家专注于 AI 设计,我们提供了 Vitis AI 工具。