本站点使用cookies,继续浏览表示您同意我们使用cookies。Cookies和隐私政策

以原生全场景的全栈解决方案,把AI推向新高度

2018年12月14日 文/华为首席战略架构师 党文栓

2018年10月10日,在上海举办的华为全联接大会上,华为轮值董事长徐直军发布了华为人工智能发展战略,同时发布了全栈全场景AI解决方案,包括Ascend、CANN、MindSpore、应用使能四个层次。

其中,Ascend(昇腾)是基于统一、可扩展架构的系列化AI IP和芯片,包括Max、Mini、Lite、Tiny和Nano五个系列;CANN是芯片算子库和高度自动化算子开发工具;MindSpore为支持端、边、云独立的和协同的统一训练和推理框架;应用使能层可以提供全流程服务、分层API和预集成方案。

本文将从下向上逐一解读全栈AI解决方案这四层的目标定位、架构和关键技术、产品及服务。

Ascend层

Ascend即IP和芯片组层,它是完整堆栈解决方案的基础层,目标是在任何场景下以最低成本提供最佳性能。

不同组织的不同应用可能选择不同的部署场景,每种可能的场景都是独特的,而所有可能的场景都同样重要。因此,我们设定的目标是在任何场景下,以最低成本提供最佳性能。这并不是一件容易的事。普遍性总是伴随着多样性,针对不同的部署场景,所需的计算性能可能从耳机的20MOPS到IPC的20TOPS,再到云的200TOPS以上,这意味着超过1千万倍的动态范围;功率预算可能会从1mW到200W以上,超过20万倍的动态范围;期望的模型大小可以从小到10KB到超过300MB;在延迟要求方面,也有100多倍的变化。

在所有场景下都需要用到推理,不过,是否需要在云和边缘以外的场景中进行训练或学习?我们的观点是肯定的,因为我们将数据隐私保护定义为最高优先级,只要存在隐私顾虑,就需要进行本地训练和学习。为了应对如此巨大的动态需求,我们开发了一系列IP和芯片,从最小的Ascend Nano一直到云端使用的Ascend Max。

在开发系列化的IP和芯片时,是否要采用统一架构,是一个十分关键的选择。诚然,统一架构的好处很明显:只需一次算子开发,然后可在任何场景下使用;跨场景一致开发和调试体验;更重要的是,一旦完成某个芯片的算法开发,就可顺利将其迁移到面向其它场景的其它IP或芯片上。

然而,统一架构带来的挑战也是前所未有的。为了实现巨大的计算可扩展性,可以采用堆叠扩展(Scale out)的方法,首先设计针对最小或较小计算场景进行优化的架构,然后通过堆叠来匹配最大的计算场景,但这将不可避免地增大芯片面积和功耗,直至难以接受;或者可以选择向下缩小(Scale in)的方法,即首先设计针对最大或较大计算场景进行优化的架构,然后通过精细分割来匹配最小的计算场景,但这必将导致任务调度和软件设计异常复杂,并且可能由于电流泄漏而使低功耗目标无法达成。除此以外,在各种场景下,内存带宽和延迟的巨大差异要求始终与适当的计算能力保持匹配,以避免算力利用率降低。片上以及芯片间互连也必须面对功率和面积限制。

凭借多年的芯片设计成功经验和对客户的理解,华为选择统一的达芬奇架构来开发Ascend芯片。可扩展计算、可扩展内存和可扩展互连等三大独特关键技术,使统一架构成为可能。

为实现高可扩展的计算能力,我们首先设计了一个可扩展的Cube作为超高速矩阵计算单元,在其最大配置(16x16x16)下,一个Cube可在一个时钟周期内完成4096个FP16 MACs 运算;鉴于需要支持的巨大动态范围,我们认为16x16x16 Cube是性能和功耗的最佳平衡点。以16x16x16为中心,具有Cube Scale in功能和高效的多核堆叠功能,这样就可以使用一种架构来支持所有场景。对于那些计算能力较低的应用场景,Cube可以逐步缩小到16x16x1,这意味着在一个周期内完成256个MACs运算。这种灵活性与一套指令集结合,成功提供了计算能力和功耗的平衡。通过支持多种精度,可以最有效地执行每项任务。鉴于极高的计算密度,当电路全速运行时,电源的完整性变得至关重要,皮秒级电流控制技术有效地满足了这一极其关键的要求。与此同时,达芬奇Core还集成了超高位矢量处理器单元和标量处理器单元。这一多种计算设计使得达芬奇架构不仅支持矩阵以外的计算,而且可以适应未来神经网络计算类型的潜在变化。

为实现高可扩展内存,每个达芬奇Core都配备专用SRAM,其功能固定,容量可变,适应不同的计算能力场景。所有这些存储器都设计为对低层软件显性,因此可以通过Auto-Tiling plan配合实现数据多路复用的精细控制,最终达到最佳性能和功耗平衡,以适应不同场景。针对数据中心应用,片上超高带宽Mesh网络将多个达芬奇Core连接在一起,保证Core之间以及Core与其它IP之间的极低延迟通信。借助带宽高达4TByte/s的 L2 Buffer和1.2TByte/s HBM,高密度计算Core的性能得到充分利用。要特别介绍的是,通过使用2.5D封装技术,Ascend 910芯片集成了8个Die,包括计算、HBM和IO。

作为全球第一个全场景AI IP和芯片,Ascend系列可在所有场景下,无论是极低能耗还是极高的计算能力,都可以提供最佳能效比。

CANN层

芯片层之上是CANN层,提供芯片算子库和算子开发工具包,目标是兼具最优开发效率和算子性能,以应对学术研究和行业应用的蓬勃发展。

自2009年以来,AI学术研究领域蓬勃发展,机器学习论文发表的数量按照摩尔定律的速度增长。从企业视角来看,Gartner定义了5个进行衡量的数字颠覆级别:增强、扩展、转型、重塑和革新。基于此,Gartner认为AI在2018年的影响主要是帮助企业增强现有业务,在未来5年时间内,AI的影响将会围绕“转型”和“重塑”展开。在历史上,从来没有一种技术能够以如此快的方式带来如此巨大的影响。可以说,我们正走向AI学术研究和行业应用的双重繁荣时代。

从技术角度看,这意味着算子的多样性也将持续迅猛发展,其原因来自许多方面,可能是因为不同的应用、模型或网络,用于前向或后向计算,也可能因准确性、资源预算而有所不同等等。然而,今天用于开发算子的语言要么擅长性能,要么以开发效率为导向。显然,拥有兼具高效率和高性能的工具包将对未来AI的应用和发展至关重要,这正是华为芯片支持CANN的动机。

CANN 是神经网络计算架构( Compute Architecture for Neural Networks)的缩写,提供了高性能的CCE算子库。关键组件是其高度自动化算子开发工具Tensor Engine,通过统一的DSL接口(TE Interface),配合预置的高层模板封装、自动性能调优等工具集合,让用户方便地在Ascend芯片上开发自定义算子(CCE lib-extension)。Tensor Engine是面向华为内部和非华为开发者使用的统一工具。华为工程师专注于极致性能算子的开发,华为开发的算子可以在CCE lib(Cube Compute Engine Library)中找到;非华为开发人员可使用相同的工具包来开发想要的算子,所有非华为开发的算子都可以在CCE Lib-extension中找到。除此以外,CANN也完全支持用TVM生成算子,并把这些算子集成到CCE lib-extension。通过这两个库和Tensor Engine工具包,CANN已经支持所有主要的ML / DL框架。举个华为内部的开发例子,Reduce_sum是TensorFlow中经常使用的算子,同样在Ascend芯片上开发这个算子,使用通用的DSL,需要63 Loc,使用Tensor Engine DSL,仅需22 Loc就能实现同样的功能,开发效率提高将近3倍,这是一个面向极致性能的算子,在CCE lib中可以找到。

MindSpore

MindSpore是统一的训练/推理框架,它的目标是设计态友好、运行态友好、适应所有场景。

市场上已有很多的AI框架供选择,但都无法完全满足我们的期望。我们认为,AI框架应该是设计态友好,例如显著减少训练时间和成本,以及有效运行态,例如最少资源和最高能效比,更重要的是,能适应每个场景,包括端、边缘和云。

AI的未来发展正呈现高度动态的趋势。这不仅仅是因为活跃的学术研究,如当今世界最有影响力的计算机科学家之一迈克尔·乔丹教授指出,关键任务、个性化、跨组织和需求超越摩尔定律等趋势,正在推动AI研究前沿向动态环境中的AI、安全的AI和AI特定架构等方向发展;也不仅仅是因为产业界AI的爆发式发展,在短短6年内单个神经网络的计算需求增加了30万倍;更重要的是,GDPR自2018年5月25日起应用于世界各地的组织,很久以前人类掌握了管理土地、工业以及许多其它事物的智慧,数据作为一种新的资源早已成为共识,但如何管理数据却还缺乏有效的方法。GDPR是政府层面第一个全面的、管理数据的尝试,而数据恰恰是人工智能的关键所在,显然它的影响是历史性的。

基于这些理解,华为认为AI框架应该是统一的训练/推理框架,可在任何地方进行训练和推理,同时无论是独立还是协作,无论是在端、边缘还是云,无论协作发生在端和云、边缘和云或端和边缘之间,都应保持一致的开发体验。

MindSpore就是一个这样的统一AI框架,计划于2019年第二季度提供完整的框架,包括模型库、图计算和调优工具包等核心子系统,具备ML/ DL/RL的统一分布式架构,灵活的程序界面,并支持多种语言。

MindSpore可以很小,也可以很大,以适应不同的环境。比如用于终端设备上学习的小型版框架,可能是目前为止最小的全功能AI框架,总框架不到2MB,RAM只需不到50MB,与市场上最接近的解决方案相比,所需的ROM减少了5倍以上,这款用于终端设备上的MindSpore将于2019 年第一季度上市。而Ascend Cluster可能是当今世界上最大的分布式训练系统,把1024个最高计算密度的Ascend 910芯片连接到一个计算群集中,提供256 PetaFLOPS超高计算能力,能以前所未有的速度进行模型训练,使在几分钟或几秒钟内实现训练目标成为可能,同时结合32TB HBM,如果需要,可以更容易地开发比以前更大的新模型。

另外,使用OMG(离线模型生成器)和OME(离线模型引擎),基于主流开源框架训练的或准备训练的模型都可以在Ascend上工作。

应用使能层

应用使能层是一个机器学习PaaS,提供全流程服务、分层分级API以及预集成方案,目标是满足不同开发者的独特需求,使AI的采用更加容易。

随着AI的进步,机器将在越来越多的任务中继续达到并超越人类的表现。因此,AI将通过越来越多地替换以传统方式开发的任务,来逐步重新定义应用程序开发。在很长一段时间内,应用程序将由AI相关软件和传统软件组成,这两种软件在开发、测试和维护方面有很大差异。AI相关部分实际上需要很多服务,这些服务往往相互割裂,有些甚至是不可获得的。目前,与AI相关的软件部件常常需要高技能数据科学家,而这些资源通常也不可获得。这使得整个应用程序和解决方案开发变得颇具挑战性,从而阻止了AI采用的步伐。

通过应用使能层,我们希望尽可能简化与AI相关的部分,方法是提供完整的全流程服务、分层API和预集成解决方案。ModelArts就是这种完整的全流程服务,可将模型生产所需的所有服务一站式提供,从获取数据到模型训练,直到适应变化。这里重点解释一下其中两项服务:适应变化和ExeML。

第一项要强调的服务是适应变化。鉴于训练好的模型其性能的恶化是不可避免的,对系统进行持续监控,并及时实施必要的更新就显得尤为重要。我们正在开发5个子服务来完成这项工作,包括数据分布监控、准确性监控、智能重新训练数据生成、自动模型适应和本地学习。

第二项要强调的服务是ExeML,基于大规模训练系统Ascend Cluster的巨大能力,我们相信机器学习自动化应该能够达到一个新高度。除了模型构建自动化和训练过程优化,ExeML的目标是做到面向执行的自动模型生成和适应部署环境的自动优化,包括特定部署环境的推理时延、硬件资源和算子适配。由此,ExeML成为首个从设计一开始就面向生产环境以最低的成本提供最佳生产性能的系统,将与Ascend 910一起于2019年二季度上市。

AI仍处在发展的早期阶段,预集成的解决方案对于简化AI采用至关重要。华为云EI推出一年来,已拥有丰富的预集成解决方案,可用于城市、制造、物流、健康等领域。值得强调的是,我们的全栈组合不是封闭系统,而是基于开放式架构,华为云EI也支持GPU。

我们相信,为了促进AI的采用,并真正实现AI无所不及,AI解决方案必定是原生全场景(all-scenario native)的。基于华为原生全场景的AI全栈解决方案,我们已准备好为每个人、每个家庭、每个组织提供人工智能支持,一起把人工智能推向新高度。

本期期刊下载