高通 (Qualcomm) 早在 2016 年的骁龙 820 就已经加入了 AI 处理能力,使用 CPU 计算的方式,在不额外增加成本的前提下,达到与苹果和华为的 NPU 类似的功能特性,也支持主流的神经网络模型。时间点也早了业界 1 年以上。
图丨高通已经把 AI 当作未来移动平台的重点发展方向。
随后的骁龙 835 则是引入了神经处理 SDK,并与 Google 和 Facebook 进行了深入合作,针对两者提供的框架进行了优化,在终端侧支持 TensorFlow 和 Caffe2。它们曾经都是通常在云端运行的框架。一旦网络受到了训练,开发者就可以从骁龙移动平台中选择合适的内核运行。另外,离线工具可以在目标运行前,对模型进行转换、优化、量化。
当然,软件再如何优化还是不如硬件,835 的 AI 整体计算性能仅能达到 A11 或者是麒麟 970 内建 NPU 的几分之一,且能耗表现明显较差。
但高通还是往前迈进了一步,那就是 NPE 开发环境已经不再封闭,而是提供给广大的第三方 AI 应用开发者,NPE 也理所当然的支持主流深度学习框架,包含 TensorFlow、Caffe 等,而最近才发表的 TensorFlow Lite 及 Facebook 与微软合作推出的 ONNX 也同样在支持之列。高通也期待借此能在 AI 的路上后发先至,甚至凭借更完备的开放式开发环境反超苹果和华为。
而在最新的骁龙 845 上,高通依旧维持前代的软件 AI 计算结构,也就是结合 CPU、GPU以及 DSP 三者计算能力的异构组合,针对不同应用情境来解决,不过在架构性能上已经经过大幅优化,配合新版的 Hexagon 685 DSP 以及 Adreno 630 GPU,针对训练和推理所需的向量计算能力大幅强化后,整体 AI 计算效率可达前代骁龙 835 的三倍以上,已经可和麒麟 970 或苹果 A11 内建的 NPU相提并论。
Hexagon 685 DSP 过去都是针对影像或音频处理做加速使用的单元,但是到骁龙 845,通过额外增加的向量处理单元,配合原本可程序设计的特性,已经可以很好的应对现在AI 计算环境中的各种框架执行需要,当然,DSP 的计算能效虽不如 NPU 之类的 ASIC 方案,但其可弹性配置的优点,以及高通针对开发环境的优化,仍能达到相当不错的表现。
不过与华为、苹果不同,高通认为考虑到手机系统功耗限制,训练还是在云端为佳,因此整套 NPE 方案还是以推理为主,并且集中在图像处理以及语音识别等功能上,当然,未来还是有改变的可能。
为扩大高通的 AI 生态,就不能只守在高端芯片产品,过去作为中端方案的高通 Snapdragon 600 系列在 AI 性能方面远远落后于高端的 800 系列,因此在相关手机方案上几乎没有厂商将 AI 功能嵌入进去,为此,高通推出的 Snapdragon 700 系列算是终于补上了这道缺口,其 AI 计算性能要比 600 系列高了 225% 以上,已经相当接近高端方案的水平,而客户对此也相当欢迎,毕竟高通还是市场上最主流的中高端方案供应者,若能够在中端产品增加更多 AI 附加功能,那对于产品的销售还是有相当好的帮助的。
高通确立 AI 生态优势,力抗华为与苹果
AI 已经成为手机最热门的话题应用,为了确保高端手机的使用体验能更贴近用户,在不论照相功能、语音服务,以及其他智能服务上,具备高性能 AI 加速功能已经是基本要求,但是在开发环境上,如果对开发者不够友善,那么就很难建立生态。
对此,高通提供开发者一套神经处理 SDK,它可以支持 Android NN 环境。也同时支持了 Hexagon NN环境,如果开发者选择使用 Hexagon DSP 来做开发,Hexagon NN 库就可以专门针对某一内核进行优化。所有这些功能为开发者带来极大的灵活性,并有助于他们实现性能最大化。这也说明,智能手机 AI 体验不能仅仅依靠一个特定的内核,更重要的是需要多种架构、多种工具。
高通过去手机方案的开发工具包都只针对其客户发放,并没有考虑到第三方软件开发者的需求,虽然高通平台同样能支持一般标准开发平台,比如说 Android 开发平台,但这么一来就无法完全发挥高通平台在硬件设计上的独到之处,而 NPE 针对第三方开发者的友善设计算是高通相当明智的策略转变,NPE 在应用开发上的优势,以及在高通平台的基础渗透率极为庞大的状况下,未来成为手机 AI 的主导平台也不会令人意外。