近年来,机器学习(ML)技术,尤其是机器学习的神经网路子集,几乎已经迅速入侵了行动设备硬体和应用软体的所有层面。许多常用且广泛使用的手机应用程序都在后台运行ML技术,以针对特定用法和行为对设备进行微调。当手机的电源管理系统自动微调性能设置以延长电池寿命时,这就是机器学习的一个例子。
图一 : 在所有机器学习案例中,最具挑战性多媒体的强化功能。 |
|
当行动设备助理装置追踪正常的行车状况,并发送有关火车或下班回家路上交通异常延误的警示时,这也是机器学习的一种形式。而且,如果社交网路应用程序使用你朋友的名字来标记你所上传的照片,那么这也是正在运作中的机器学习的最好例证。
机器学习的重大挑战
以节能和数据频宽高效的方式来提供大规模运算,将成为行动运算晶片开发人员面临的最大挑战。
Arm机器学习事业部副总裁Steve Roddy指出,上面所提到的范例,都是下载到手机并在CPU或GPU上运行的软体APP应用程序。深度嵌入功能还与行动设备的硬体紧密相关,例如,高性能的神经网路功能可以改善行动设备中的相机视频和静态影像捕获品质。当行动设备连接到无线网路或蜂巢式网路时,高级WiFi和5G调变解调器将采用与机器紧密耦合的自适应机器学习演算法,并最大程度地提高数据传输速率。
Steve Roddy说,在所有这些机器学习的案例中,技术上最具挑战性的是照片与视讯等多媒体的强化功能,通常称为运算摄影。拍摄10秒钟视频或自拍照的消费者,希望在非常高分辨率的感测器上,以每秒60帧的速度执行具有智能对焦和曝光的稳定流畅视频撷取;加上透过语音来启动的命令处理功能,以设置功能并启动或停止视频撷取(自然语言处理)。
在即时视频上同时运行所有这些功能,将会消耗大量的系统运算处理能力。在今年所宣布用于高阶行动领域的最新行动设备,多数都采用了Arm架构处理器来提供具多核运算效能的15~20 TeraOp/Sec神经处理单元(NPU),可以满足这些应用范例中的高运算要求。我们可以预期,在2020年甚至2021年将超过这些运算的水准,以节能和数据频宽高效的方式来提供大规模运算,将成为目前行动运算晶片开发人员所面临的最大挑战。
针对不同应用部署机器学习
Arm的机器学习策略,是透过通用软体层以及功能强大的整合开发与调试工具,尽可能将广泛并支援ML的处理元素组合在一起。每个行动SoC开发团队都会在设计上进行取舍,以针对每种不同的应用来部署运算能力和机器学习能力。
SoC设计人员必须考量面积与成本、灵活性与专用运算能力,以及性能与功耗之间的关系。这样的结果是,没有两个行动SoC看起来是完全一样的。
Arm提供了大量的Cortex CPU、可扩展的Mali GPU与Ethos NPU,因此客户以异构混合架构的形式来设计,以达到其目标市场的正确性能目标。举例来说,一个典型的新设计架构,可能具备有大小核的多核心Cortex CPU、多核心GPU和Ethos NPU的多核混合架构。
但是,Steve Roddy说,Arm的工作并不会随着SoC设计人员选择了IP而结束。 Arm可以让应用程序开发人员编写一次性应用程序,并部署在任何执行Arm NN(neural network)的设备上,而Arm NN也可将ML工作负载指定到设备(CPU,GPU或NPU)中适当的Arm IP,开发人员无需担心必须针对每种硬体类型调整应用程序。
运算革命
事实上,Arm正与生态系统各个层面的合作伙伴广泛合作,Arm的技术是运算和连接革命的核心,这样的革命正在改变人们的生活和企业运营方式。到目前为止,Arm的节能处理器设计已实现了超过1500亿个晶片的智能计算,并且可以安全地为感测器、智慧手机和超级电脑等产品提供运算能力。
Arm与1,000多个技术合作伙伴一起站在设计、保护和管理晶片到云端的所有运算领域最前线。基于这些生态系统的优势和普遍性,人工智能生态系统已经在Arm架构上实现了标准化。 Arm和生态系统一直在为AI优化的开放软体和工具等方面进行大量投资,来确保Arm处理器在各种AI应用中都能发挥全部的潜力。
Steve Roddy认为,5G的加速发展,以及AI、xR和IoT等,正在改变运算需求。面对更身临其境的应用案例,运算性能需要超越当今的水准。这就使得我们必须采用一种截然不同的方法来设计IP,称为Total Compute,这种方法是透过在IP、软体和工具内部,以跨IP、软件和工具的方法进行优化,来提供经验基础的解决方案,提供安全的基础及复杂系统所需的性能,并透过运算来解决未来的工作挑战。
建构和运行机器学习应用程式
图三 : 机器学习特点是运算量庞大、且需要大量的记忆体频宽,这正是行动设备最大挑战。 |
|
Arm推出神经网路机器学习(ML)软体 Arm NN,这是一项关键技术,可在Arm平台上轻松建构并无缝运行机器学习应用程式。
实质上,Arm NN桥接了现有的神经网路框架(例如 TensorFlow 或 Caffe),以及在嵌入式 Linux平台上运行的底层处理硬体(例如CPU、GPU或新型的Arm机器学习处理器等)。这样一来,开发人员就能够继续使用他们首选的框架和工具,透过Arm NN无缝转换,就可以在底层平台上运行。
机器学习需要经过一个训练阶段,也就是学习阶段(也是先学习「这些是汽车的图片」),另外还需要经过一个推理阶段,也就是应用所学的内容(推论「这是汽车的图片吗?」)。这些训练的过程目前通常在伺服器或类似的设备上发生,至于推理则大量的移转到网路边缘来进行,这正是新版本Arm NN的重点所在。
结语
机器学习工作负载的特点是运算量庞大、且需要大量的记忆体频宽,这正是行动设备和嵌入式设备面临的最大挑战之一。随着运行机器学习的需求日渐增加,对这些工作的负载进行分区变得越来越重要,以便充分利用可用的运算资源。
软体开发人员面临的挑战在于很多不同的平台,这就带来一个现实问题,CPU通常包含多个内核(例如Arm的大小核架构,甚至还有多种内核类型),此外还要考虑GPU,以及许多其他类型的专用处理器,包括Arm机器学习处理器等,这些都是整体解决方案的一部分。在这些应用情境中,Arm NN通常可以派上用场。事实上,Arm NN在其中扮演了枢纽角色,既隐藏了底层硬体平台的复杂性,同时可以让开发人员能够继续使用他们的首选的神经网路框架。