FPGA开发难?Xilinx这款软件平台解锁全员创新:开放,标准,免费!
浏览量:32773
发布日期:2019.10.14
提及FPGA,许多人的第一印象就是“难,难于上青天”,一方面Verilog/VHDL与C语言大庭相径,需要彻底理解FPGA内部的逻辑结构的知识,另一方面,FPGA不仅逻辑思维很重要,在数学思维上的化繁为简在优化过程中也让人头疼。对于掌握知识不同的软件工程师或硬件工程师,都驻足在了上手难度的门外,尤其是想要开发一些具有AI的复杂算法场景就更加雪上加霜了……
就在2019年10月9日,赛灵思公司(Xilinx)发布了里程碑式的 Vitis™ 统一软件平台,以“突破软硬壁垒,解锁全员创新” 为主题,解锁软件开发者的硬件加速壁垒,将赛灵思独特的自适应计算能力带给全员开发者的新篇章。对Xilinx比较熟悉的开发人员,可能在认知中Xilinx是一家偏向硬件的企业,此次发布的软件软件平台正是为适应现如今行业发展、为不同层次开发者提供便捷开发能力、为行业创造更大价值而发布的。21ic中国电子网记者受邀参加此次发布会,赛灵思大中华区销售副总裁唐晓蕾(Maria) 及赛灵思软件和人工智能高级经理罗霖(Andy)现场为记者解答相关问题。既可编程又自适应的Vitis:行业三大趋势中应运而生在开始介绍这款软件平台前,首先强调的便是,这款工具不同以往,是“开放,标准,免费”的。对于FPGA熟悉的人,一定对Xilinx也并不陌生,这也许是Xilinx历史上第一次将软件开发平台免费。现场,据唐晓蕾介绍,如今,行业正迈向三个趋势——AI激增、异构计算、从云端到边缘。第一,AI激增:AI也是近几年最火热的词,从数据中心、5G、自动驾驶、基因组学、医疗、金融等各种应用的大规模应用,导致数据量的激增,这种情况下就需要一个非常统一的平台。第二,从云端到边缘:数据量的激增导致大量的计算需要放在云端。假若都在云端计算对整个带宽的要求是不是一样的,所以产生了边缘计算;但都在端计算,功耗、计算能力都是问题。所以这种情况,云端与边缘的统一化逐渐成为现今的最佳解决方案。第三,异构计算:在计算能力不足以完成当前任务量之时,行业引入了CPU+ASIC、CPU+GPU、CPU+FPGA的概念,这也便是异构计算的概念。而Xilinx所提出的异构,与传统异构并不同,是自适应的异构,主要是软件感知架构,这种架构将不再单纯用硬件决定应用场景。当然Xilinx去年10月发布的ACAP也已提出软件自适应计算加速平台,该平台是为配合ACAP而生。

图1:赛灵思大中华区销售副总裁唐晓蕾(Maria)在这种趋势下,如何解决这种问题?唐晓蕾表示,现今基本大多采用可编程或自适应来解决,但大多数情况下,市面的CPU、GPU、ASSP在可编程和自适应上市场还难以做到二者同时存在,Vitis正是这样一款既可做到可编程,又可做到自适应的软件平台。正如上文所述,Vitis这款软件平台是免费开放的,是一款统一的软件平台,可实现在 Xilinx 异构平台(包括 FPGA、SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。它可为边缘、云和混合计算应用加速提供统一编程模型。可以让包括软件工程师和 AI 科学家在内的广大开发者都能受益于硬件灵活应变的优势。据罗霖介绍,现如今,应用场景是非常碎片化、多样化、创新化的,举个例子来说,自动驾驶的厂商软件迭代周期非常短,模型近乎每周更新,这个前提下专门为某个应用做一款芯片是不可能满足客户需求的,客户需求的是扩展灵活的平台,可以根据应用和工作负载自动优化系统,包括软件和底层的硬件,这也是Vitis能为市场带来价值的最大价值。
图2:赛灵思软件和人工智能高级经理罗霖(Andy)
那么这款Vitis统一软件平台究竟有哪些功能?Vitis 统一软件平台是将Vitis目标平台、Vitis核心开发套件、Vitis加速库集合在一起的统一平台,可完成从端到云不同形态的需求,具体功能包括:

Vitis目标平台:Vitis目标平台为Xilinx平台定义了基本软硬件架构及应用环境,包括外部存储接口、自定义输入输出接口和软件运行时。Vitis核心开发套件:包括编译器、分析器、调试器、赛灵思运行时库(Xilinx RunTime库,即XRT)。Xilinx RunTime库主要目的是为上层用将底层细节抽象,包括终端处理、生命周期管理、内存数据搬运,都是由该库负责进行。Xilinx RunTime库可促进应用代码(运行在嵌入式 ARM 或 x86 主机上)与加速器(部署在基于 PCIe 的 Xilinx 加速卡、基于 MPSoC 的嵌入式平台或 ACAP 的可重构部分上)之间的通信。它包括用户空间库和 API、内核驱动、电路板实用程序和固件。编译器既包含C/C++/Python的编译器,也包含赛灵思的V++编译器,主要用来针对具体的应用产生具体加速内核;分析机能够直观了解底层到底层间究竟发生什么;调试器可以在遇到错误或Bug时,帮助分析进行调试。在用户体验方面,该套系统的用户体验将会给工程师带来非常熟悉的开发环境,与此前所使用的的ARM、DSP开发流程完全一致。Vitis加速库:包括OpenCV库、BLAS库、金融库,另外还包括Xilinx专门针的解决方案Vitis AI和Vitis video,其中Vitis AI将在下文中介绍,Vitis video面世在即,这两款解决方案也可帮助开发特定环境方面的应用。通过上述的三重功能,对于开发“苦手”的人可直接应用相关库进行开发,而专业人员也可以使用相关的套件和Xilinx提供的经过优化的库进行高效率开发,减少开发时间的同时还可节省成本。值得一提的是,Xilinx自28nm开始的器件均可使用该平台,另外一般的FPGA都可支持,不过ACAP一定要使用Vitis进行开发。在人工智能时代,市场已逐渐从传统的软件开发方法转向深度学习的算法。自1997年IBM深蓝成为国际象棋的冠军开始,IBM Watson、AlphaGo等逐渐可实现性能超越人类的高精准应用,现在对于人工智能软件的注重程度越来越高。诸如汽车驾驶员辅助系统(ADAS)、机器人出租车是现在正在发展的项目,而在2024年,汽车还将实现全自动驾驶。在这样的背景下,Vitis同样也具有这样的解决方案——Vitis AI。

据罗霖介绍,Vitis AI底层是业界主流的框架,包括TensorFlow、Caffe、PyTorch,另外,包括37个开源的模型,这些模型是针对不同应用,诸如智慧城市、智能驾驶、实施目标分析跟踪等,开发者可以直接取用模型进行开发。