然而,无论是对于同构(homogeneous)或者异构(heterogeneous)的多核系统,在其硬件架构上进行编程及软件开发变成了一个艰巨的挑战。Silexica公司负责业务发展的副总裁Kumar Venkatramani表示,对于开发团队来说,多核系统软件设计优化工作现在是全手动过程,完全基于以往经验及开发人员的直觉,无法控制设计质量和进度。他说:“多核软件开发流程离成熟还很远。”
位于德国亚琛的Silexica公司于2016年11月16日宣布了其下一代多核软件开发旗舰工具SLX Tool Suite正式向客户交付。
经过了其核心团队在德国亚琛工业大学超过十年专注于多核系统设计自动化的技术孕育和开发,Silexica公司2014年在亚琛成立,正式从大学研究中拆分出来。现在Silexica公司提供一整套设计自动化工具来帮助多核系统开发工程师和架构师。其产品包括自动分析串行软件代码中并行化的可能性及评估优化后性能提升,以及如何将软件自动最优分布到多核系统各个处理单元。根据功能划分,这些工具模块命名为SLX Parallellizer(并行化分析)、SLX Mapper(自动分布优化)、SLX Generator(多核代码生成器)和SLX Explorer(多核软硬件并行分析)。Venkatramani表示,在最新发布的版本中,各个工具模块功能都有了长足的进步,包括了工具输入编程语言的扩展和支持更多的模型等。
对多核系统进行编程开发不是一件轻而易举的工作,特别是当下的多核系统的规模(核的数目)成几何指数爆发性增长,与其同时各个核变得更异构化,各种具有特殊处理能力的处理器(比如图形处理单元GPU以及通用处理单元CPU)层出不穷,更加剧了工作的复杂性。
Venkatramani举例说,看一下现代5G无线通信基站的设计,基于500核的多核系统以及在其上部署多达55000个并行软件任务的方案已经很常见了。完成这个规模的软件设计编程任务需要多达500个工程师。此类项目与之前的设计相比,需要计划大约4倍长的开发周期,3倍左右规模的开发团队,从而导致了整个设计项目开销大概是之前的4.5倍多。
Silexica现在聚焦于三个业界应用领域:嵌入式视频处理/增强现实(Augmented Reality)、无线基带以及自动驾驶。Silexica表示,这三个领域的共同点是其应用都将多核硬件系统提供的计算能力推至了极限,同时,这三个领域的软件开发历史都不长。更为重要的是,这些多核系统的架构师和开发者都承受着极大的压力在这些领域进行创新工作。他们需要自动化工具来帮助他们进行有效的基于准确数据的分析,而不是依赖于猜测和直觉。
SLX Mapper和SLX Generator是针对需要自动分析软件如何最优化地映射到多核系统各个处理单元的工程师开发的工具产品。Silexica表示,这两个工具对系统中的核内计算和核间通讯进行最优映射,提供了对多核系统精确的性能评估和瓶颈分析能力。更准确地说,SLX Mapper提供最优软件分布方案,来确保最大效率利用多核系统硬件资源;SLX Generator是一个对多核系统定制的代码生成器,来提高工作流程的效率。
SLX tool suite (Source: Silexica)
这些工具最新发布的版本能使设计人员对多核系统的关键特性比如时延和吞吐率进行优化,同时也支持更好地优化系统的功耗使用。Venkatramani说:“Silexica的工具现已支持对总线(bus)片上(on-chip)通讯和阻塞的分析。”
这些Silexica工具中新特性的设计来源和驱动来自于客户的需求,设计人员需要更细化地对系统各个特性进行优化。Venkatramni提到,比如功耗优化,有些系统注重于平均功率,而其他一些则更关注峰值功率。现在这些工具能够帮助多核设计人员更准确地根据应用需求来做多核系统架构的设计决定。
同时,SLX Parallelizer是一款帮助将串行软件代码移植优化到并行多核系统的工具。之前版本的SLX Parallelizer只支持读入C语言代码,新版本中Silexica加入了对C++语言的支持。Silexica表示,SLX Parallelizer通过深入分析并行化可能性,帮助客户将既有的C/C++串行代码移植到目标多核平台上。
SLX Explorer的目标用户是多核系统架构师,他们需要根据应用特性来选择最适合的多核硬件平台。这款工具提供了对系统软件性能和功耗的准确评估,来帮助用户更深入了解系统运行情况。Silexica说,新版本中加入对64位系统和PowerPC的支持,让用户有了更广阔的设计优化空间。
那么,类似Silexica提供自动化工具支持多核系统软件开发的公司有哪些呢?
Venkatramani表示,尽管其他公司也有提供工具来帮助对多核系统自动软件开发,但是它们大多只提供单点工具(single tool)来解决软件开发流程中的某些特定环节,没有一家厂商能像Silexica一样覆盖多核软件开发的全过程。Venkatramani也提到,一些客户也有内部自己研发的工具,但只针对自己的多核平台适用。
Silexica将其提供工具的用户定位于多核系统芯片SoC设计开发者和架构师。我们询问Venkatramani,Silexica提供的多核工具软件是否只适用于一些特定型号的多核处理器。Venkatramani表示,Silexica采用的对多核芯片支持的方式是独立于工具之外的XML建模文件。这使多核芯片的建模工作独立于Silexica工具的开发过程,Silexica的客户和第三方能够独立开发硬件模型。
Silexica工具(SLX Mapper和SLX Generator)现已支持的多核系统包括工作站主机执行、德州仪器(Texas Instruments)OMAP、Keystone系列、恩智浦(NXP)T4240/B4860,Parallella/Ephiphany,ARM 32位、64位芯片等。Venkatramani说:“我们会在将来进一步扩展支持的多核硬件模型库。”
尽管Silexica成立仅仅两年时间,但其产品已迅速被市场接受,华为和富士通等全球大客户已经使用其产品。
华为美国公司无线研发总监陈小涛博士称:“过去四年,我们一直在用Silexica工具开展研究工作,最早是与德国亚琛工业大学的Leupers教授和他的学生合作,然后是跟Silexica的技术专家组合作。无论是在处理器(DSP/CPU)功率分析、片上网络功率效率,还是在无线基带应用的异构分级架构的多核软件功率优化映射与调度上,这款系统级性能分析和优化工具在系统性能和功率效率上的提升都远远胜过传统的解决方案。”
与此同时,富士通也把视线放在了在多核平台上的核间通讯优化以及复杂的汽车应用带来的巨大挑战。富士通先进技术有限公司(Fujitsu Advanced Technologies Ltd)经理Noriyasu Nakayama表示:“为了应对这些挑战,我们已经成功地将Silexica工具整合集成到我们的多核软件开发流程中。
”
在我们的采访中,Silexica公司也提到了多核行业协会(Multicore Association)正在进行的业界工具通用标准制定及其重要性。这个非盈利性组织针对多核设计应用的优化工具,正在修改制定其倡导的软硬件接口描述SHIM(Software/Hardware Interface for Multicore/Manycore)下一个版本。作为多核行业协会的成员,Silexica将提交一些意见和贡献自己的成果,整个行业必须通力打造通用标准和开放规范,才能促进多核发展。