随着arm生态系统的发展壮大,各种各样的应用场景层出不穷。为了更好地在特定场景下得到更好的性能,能耗比等指标,针对特定应用场景的加速器市场也在蓬勃发展,近年来火热的人工智能加速器(Artificial Intelligence Accelerator)就是一个典型例子。
一个高效的加速器,需要精心设计的硬件以及与之搭配的软件,两者缺一不可,否则用户体验会大打折扣,这也是为什么我们常常看到某些指标非常惊艳的加速器,在实际使用中体验却不尽如人意的原因。以人工智能加速器为例,其中基本的硬件加速单元就是乘加器的组合,但如何让这些乘加器高效地进行并行计算,涉及到上层数据的打包,调度,需要大量的驱动软件工作,而且大部分软件开发者都是基于某种框架进行应用开发,具体见图 1,所以驱动到框架的适配也很重要,甚至有一些框架不能满足应用的需求,需要专门开辟通道进行优化。
图1:arm NPU软硬件框架
开发一款高性能加速器,需要投入大量人力物力,如果不能大规模使用,那么投入回报比会大大降低,甚至亏本。如果加速器能和不同arm系统轻松组合,拓展arm系统的应用范围,那么应用场景将会大大增加,生命周期也会延长。让加速器适配不同的arm系统,这对软硬件接口和驱动提出了非常大的挑战,因为今天的arm产品非常丰富,从低功耗的微处理器,主流的移动平台,到高端的服务器,高性能计算处理器都有相应产品。对于一个加速器团队来说,针对尽可能多的arm配置组合进行开发验证成本将非常高昂,这里面不单单涉及IP/EDA的采购,还有系统的搭建维护,但如果没有这些IP又无法将整个业务流程完整验证,甚至影响软硬件接口的设计优化。有没有方法高效地解决加速器配套驱动,框架,应用软件开发的问题呢?Fast Model!
图2:使用DS-5调试运行在Fast Model中的系统软件
在Fast Model的例子系统中,arm给出了一系列arm核,相关IP组合的子系统模型,以及相应OS,开发工具DS-5,方便客户快速搭建软件开发平台,调整软硬件接口,进行驱动以及上层软件的开发,具体参考图3。整个开发流程如下:
-
- 在Fast Model的例子系统中找到你需要的平台,和对应的Bootloader, Firmware, OS软件,并将他们顺利运行
- 将Fast Model的子系统导出生成SystemC的模型子系统模块
- 编写加速器的功能模型,通过AMBA PV总线和Fast Model导出的子系统模块进行连接
- 编写驱动在目标OS中操作加速器
- 在模型平台上进行软件框架,应用匹配移植
图3:基于Fast Model的加速器软件开发
至此开发者已经完成了大部软硬件接口,驱动以及框架软件开发工作,但驱动中的时序问题还没有完全解决,因为Fast Model是一款功能型模型,它为了提高运行速度(50-200MHz),牺牲了时序信息。对于时序信息,开发者可以最后去仿真平台甚至最终芯片上去调节,而此时软件测试用例和框架都已经完成,这将大大节省占用仿真平台(MHz)进行调试排错的时间,从而降低成本。综上所述,Fast Model可以迅速提高加速器产品的成熟度和适配范围,如果您和您的团队正在开发基于arm的加速器,欢迎联系我试用Fast Model来缩短产品的成熟周期,提高配套软件的质量,提前将产品推向市场。
关于九游会J9电子
上海市九游会J9电子科技有限公司(中文简称:九游会J9电子,英文简称:Emdoor)是国内全面的开发工具提供商之一。九游会J9电子面向企业用户,提供研发、设计、管理过程中使用的各种工具,并致力于和客户一同提高研发、设计效率,缩短设计周期。九游会J9电子专注开发、设计、管理工具十多年,先后与ARM,Altium,Ansys,CollabNet,QT,Parasoft,MSC等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴。
九游会J9电子专注开发、设计、管理工具多年,具有丰富的工具使用经验和积累,可以为客户提供从芯片级开发工具、EDA设计工具、软件编译以及测试工具、结构设计工具、多物理场仿真工具、以及嵌入式GUI工具等等。九游会J9电子致力于开发工具的销售和技术支持,凭借多年的技术积累,可以更好的协助合作伙伴快速的掌握开发工具的使用,并让合作伙伴把精力集中在自身产品的设计过程中,以提高开发设计效率。