要想真正充分释放异构计算的潜能,除了出色的硬件,还需要很棒的软件和工具。高通在近期的一次网络研讨会上论述了这个问题,总结了它们为移动异构计算提供的软件,包括访问多种处理核心的不同方式。
全面的异构计算软件解决方案
开发者在访问一个异构计算系统的多种处理核心时有着不同需求。一种极端情况是,一些精通编程和处理器架构的开发者希望能够深度优化某种特定处理核心的算法。另一种极端是,一些开发者更希望基础处理器架构被剔除掉,只留下容易操作的高级函数调用和应用程序接口(API)。
如下图所示,高通为开发者提供访问骁龙处理器内多种异构核心的渠道分为三个级别:域库、新兴行业环境和本地访问。
对于那些希望利用异构计算的益处、又想避免进行处理核心精确编程的开发者来说,高通为不同处理核心优化了许多域库。“域库”旨在向应用开发者 提供常见用户体验所需的关键功能。例如,FastCV能加快如实时计算机视觉(CV)应用所需的人脸检测等关键功能。高通优化了FastCV 的各种功能,让这些功能在适合的处理核心上运行,比如使某些功能在CPU、VeNum、GPU或DSP上运行,实现以***的功耗提供***的性能。事实上, 内部测试显示,某些FastCV功能的性能提升了51倍。
对于那些在不同处理核心之间寻求一致编程环境的开发者,高通提供RenderScript和OpenCL等新兴行业环境。事实上,高通在所有Adreno 3xx GPU上都支持OpenCL,涵盖从大众市场层级到***层级的骁龙处理器。
对于那些熟悉基础处理器架构并希望从硬件中“榨取”***性能和功率效率的专家级开发者,高通提供本地访问处理核心的几种工具:例如用于DSP 的Hexagon软件开发工具包(SDK);用于CPU的骁龙LLVM;以及用于GPU的Adreno软件开发工具包。“本地访问”是一种编程模型,它最 小化地从不同处理核心的指令集架构中提取内容,让开发者能够***限度地接近硬件。对于需要特定处理核心的全功率和专用功能的高强度计算来说,这种访问级别十分必要。高通通过本地访问构建优化的新兴行业环境和域库。
此外,高通还为开发者提供全面的工具、手册和参考代码,让异构计算编程变得更加容易。
异构计算正在进行时
借助在系统架构和软件领域的专业技术,高通通过对关键功能进行系统级编程,充分利用异构计算的优势,从而在异构计算方面树立领先地位。OEM厂商和独立软件开发商(ISV)还利用异构计算提供关键的差异化性能。
此外,网络研讨会还得出一个重要结论:许多开发者正从异构计算中受益,即便他们不知道自己正在运用异构计算。例如,Vuforia扩增实境平台就使用 FastCV。市场上目前有4000多种Vuforia应用,均采用异构计算。还有许多应用程序采用针对异构计算而优化的其他域库。
另外,开发者也已开始意识到新兴行业环境和本地访问带来的益处。异构计算带来的功率和性能方面的巨大优化,我相信会有越来越多的应用程序采用该技术。
总之,高通正在三个关键领域大规模提供异构计算,具体包括:提供具有不同软件访问级别的综合工具、多种处理核心,以及覆盖大众市场及***移动终端的全线产品组合。