AI驱动的设计应用
近年来,人工智能(AI)产业发展十分迅速,涌现出了一大批的AI算法初创公司,与此同时谷歌、BAT等互联网公司也纷纷杀入,但是随着AI技术的逐步成熟,这个领域的竞争变得越来越激烈。
特别是在谷歌、百度等厂商将很多AI算法及工具开源之后,开发AI算法及应用的门槛开始大幅降低,与此同时很多AI算法厂商还纷纷将一些基础的AI算法能力免费向开发者提供,比如百度将其语音AI能力免费开放,虹软也将其基础的视觉AI能力免费对外开放。这些都加剧了AI算法市场的竞争。
为了进一步提升自身的竞争力,越来越多的AI算法厂商开始纷纷进入半导体领域,不再选择第三方的芯片作为载体,而是将“算法芯片化”,打造更为适合自己需求的,更具能效的,具有自主IP(知识产权)的专用型AI芯片,用以替代第三方的芯片。
以国外厂商为例,Google很早就推出了自研的TPU;2017年,Intel以150多亿美金收购了ADA
S/自动驾驶AI芯片及解决方案厂商Mobileye,此外还收购了AI芯片公司Movidius;2018年,亚马逊也曝光了自己的云端AI芯片;不久前,特斯拉也推出了自己的自动驾驶AI芯片。
在国内市场也同样如此,在过去的一年,我们可以看到,百度发布了自己的云端AI芯片“昆仑”,云知声、Rokid、云天励飞等AI算法厂商都推出了基于自己算法定制的AI芯片。
显然,对于AI算法厂商来说,自己来做AI芯片或模组,一方面可以脱离单纯的AI算法授权的商业模式,脱离AI算法领域的激烈竞争,通过向产业链上下游延伸,拉高竞争壁垒,同时可以提升自身的核心竞争力,推动生态建设,加速AI算法的产品化落地。但是,对于大多数的AI算法厂商来说,由于缺乏半导体芯片的研发人才积累、技术积累和经验积累,这也使得他们在将AI算法芯片化的过程中会遇到非常多的难题和挑战。针对这这一趋势,全球知名的EDA工具及IP厂商新思科技(Synopsys)早前就推出了一套能够实现专用指令集处理器(ASIP)开发流程自动化的工具——ASIP Designer,可以助力AI算法厂商快速高效的实现“算法芯片化”。
ASIP即“专用指令集处理器(内核)”,是针对特定应用场景的功能需求而设计的一类“指令集处理器”。与之相对的是,比如Arm的Cortex CPU内核则是属于“通用型指令集处理器”。相对于“通用型指令集处理器”,ASIP在特定应用场景下可以获得更为出色的性能、面积、功耗和成本等竞争优势。
这里需要区别的是,ASIP并不等于专用型处理器ASIC,我们通常所说的ASIC芯片是一个完整的芯片,其不仅包括针对特定算法设计或优化的内核,还包括了外围的电路、接口等等。
对于算法厂商来说,虽然市场上有很多现成的处理器内核可选,但为了覆盖更多的用户和市场,这些处理器内核往往都是偏向“大而全”,性能、面积、功耗也一定不是理想的。并且,这些内核都是固定的,难以进行修改的,更不能根据自己的应用需求去优化。
针对客户的特定需求来说,买来的处理器内核可能只有部分指令用得上,有很多的指令是用不上的,这就造成了浪费。比如,算法厂商需要设计一个处理器来跑自己的20条指令,如果要用Arm内核来做,可能其内部很多指令用不上,同时还需要搞定Arm内核里面的初始化和驱动,这就需要增加很多的指令,还会遇到面积、功耗、启动时间等一大堆的问题。
相对而言,由于算法厂商对于自己的算法非常熟悉,如果采用自定义的处理器架构和指令集,那么就可以实现极简化的按需设计,并且可以通过不断的修改和优化自己的架构,最终获得比市场上可以买到的处理器内核更好的效果,实现高性能、低功耗、面积更小、成本更低等优势。
新思科技相关人士表示,“从自动驾驶汽车到医疗器械,从智能移动网络到空间应用,从安全到虚拟现实,几乎每个片上系统都需要或已经使用ASIP。ASIP能够满足专业处理要求,现成的商用处理器IP无法满足功率、性能、面积要求,固定功能硬件缺乏所需的可编程性。”
虽然ASIP有很多的优势,但是ASIP的研发并不是一个简单的工作,其工作量非常的大,不仅需要基于特定算法定义一套处理器模型架构,还要进行架构优化和软件开发以及验证ASIP设计,除此之外,还必须考虑开发用于对所得设计进行编程的软件开发工具链需要完成的工作。
ASIP Designer 工具流程
新思科技推出的ASIP Designer则是一套针对ASIP的开发流程自动化工具。其不仅能尽可能地减少开发专用处理器和相关编程工具所需的工程时间和工作量,而且还能加快理解候选设计的性能和效率(即设计探索)。下面简单解释下ASIP Designer这套工具的作用:
比如一家AI算法厂商,希望开发出一个适合自己AI算法的处理器内核架构(完全自主设计,而不是基于Arm CPU内核架构或者其他的CPU/GPU/DSP内核架构),那么这家AI算法厂商只需要自己定义一个架构,用nML语言就把它写出来,通过ASIP Designer就可以自动生成一套SDK,包含优化的C/C ++语言编译器、汇编器/反汇编器、链接器、周期精确以及指令精确的指令集仿真器和图形化调试器(适用于指令集仿真和片上调试)。这就形成了一个完整的极小化的嵌入式处理器内核模型及开发环境。
然后,算法厂商可以将自己的算法放到这个已经生产的嵌入式处理器内核模型及开发环境当中去运行,通过调试器和分析器来检测出来的结果对不对、效率高不高,进而发现一开始的”用户定义的架构“哪些地方有问题,哪些地方需要迭代修改。
软件开发工具包(SDK)
由于ASIP Designer的所有编译器优化都以通用方式实现,编译器还可以自动可重定向。得益于编译器的即时可用性,使得用户可以通过ASIP Designer实现快速的架构迭代,进而使编译结果能够在下一个迭代步骤中推动架构的进一步优化。另外对于算法厂商本身的算法需要快速迭代的需求,ASIP Designer也可使得整个ASIP的设计能够及时的进行相应的快速迭代。
据介绍,使用ASIP Designer完成一次完整的架构迭代可能只需要10分钟。如果采用的是现成的固定的处理器内核,那么要完成一次算法的迭代需要修改非常多的东西,而且需要真正的仿真以后才能把这个算法跑起来。跑出来以后再看结果,再根据结果去修改,显然这个迭代过程非常的复杂。
而当ASIP整个软件代码迭代完成之后,接下来就可以往硬件方面做了。
开发人员可以使用ASIP Designer的RTL生成工具将设计好的nML模型转换为完全可综合的Verilog或VHDL。因为nML可以对处理器进行周期和位精确描述,所以设计人员可以完全控制硬件。
不但如此,ASIP Designer还可以无缝对接新思科技的SoC的实现和验证工具。比如,开发人员可
以使用新思科技的RTL仿真器VCS进行进一步的模拟设计,然后进行验证:验证处理器模型(nML),确保指定的处理器模型实现所期望的行为;验证RTL模型,确保生成的RTL模型正确实现nML。
如果发现nML问题,则可以很容易返回到nML描述,并对模型执行必要硬件和/或软件修改以解决问题,例如超出功耗和/或面积预算。由于nML中的单一来源条目,SDK和RTL将始终保持同步。开发人员还可以进一步的进行模拟设计,然后使用Design Compiler生成门级描述,门级描述可用于准确评估电路的功率要求和面积,甚至可以使用新思科技IC Complier等工具进入布局和布线过程,以探索路由拥塞的风险。这种“环路综合”方法可确保做出合理决策,并避免在设计过程的后期出现意外。
总结来说,ASIP Designer功能强大,同时可结合新思科技其他丰富的配套的EDA工具,在兼容性和内部协同性上更为出色,极大简化了ASIP的设计流程,缩短了设计周期。如果是采用多个未全面整合的工具,那么就意味着需要在工具间进行某一设计版本移植,而这是引发错误的一个主要原因。而要解决发现的问题,通常需要与两个或两个以上的不同的工具供应商沟通获得技术支持,因此找出错误也将耗费大量的时间。
ASIP Designer明显降低了就新设计项目采用ASIP所面临的障碍。无需聘请仿真器、调试器或编译器专家就可以获得专业的技术支持,可以帮助设计团队提高生产力和缩短上市时间。借助ASIP Designer,设计团队可以:用ASIP替换固定功能硬件实现,进而避免设计和验证复杂且不灵活的状态;设计其自己专为特定算法量身定制的专用DSP,如图像处理、基带处理和音频处理;为高价值和差异化设计区块(如AI、第1层通信、矩阵运算)创建针对特定域的灵活加速器。
显然,对于这些AI算法厂商来说,采用ASIP Designer完全可以设计出适合自身特定AI算法的具有自主知识产权的处理器内核,且可以加速算法IP化芯片化的迭代速度,降低流片失败风险。
正所谓好马配好鞍,要想真正把ASIP Designer这个工具用好,也有着一定的门槛。
新思科技内部技术人员表示,”只有开发团队清晰明白自己需要的是一个什么样的硬件逻辑,才能够把自身算法发挥到极致“。特别是在“用户定义架构”这个部分,非常考验AI算法厂商在软硬件结构定义的能力,需要一个非常有经验的,对于软硬件都非常精通的开发团队,才能够把ASIP Designer用好。
而据了解,目前一些海内外大客户已经开始引入ASIP Designer,用于新的芯片的研发。国内外不少AI厂商、RISC-V芯片厂商也对ASIP Designer表现出了极大的兴趣。