且没有相对完整的配套技术生态,开发者们其实很难时刻保持良好的学习曲线

科技事闻 2019-11-21 11:48:06

随着社会的发展,科技的进步,5G 落地、AI 爆发、大数据持续突破、云计算已然成为新时代的水电煤。日益增多的新兴技术,为开发者带来机遇的同时也带来了不少挑战。尽管开发者们经常身处历史性事件的前沿,但由于很多技术学习门槛较高,且没有相对完整的配套技术生态,开发者们其实很难时刻保持良好的学习曲线。

在简化开发、降低技术门槛、提高研发效率等方面,华为每年投入大量的资金和人力,而小编将为大家介绍的这十大硬核技术,正是华为加速技术发展、构建产业生态的助燃剂。

在小编看来,作为开发者,了解学习到这 TOP 10 技术,不仅可以了解技术产业前沿趋势,也是为未来职业生涯发展打基础。因为技术隐藏在产品之后,看不见摸不着,开发者们也可以先行体验华为承接的系列核心产品,感受强大技术背后的黑科技力量。

TOP 1 达芬奇架构

毋庸置疑,AI 技术正成为各行业数字化转型的发动机,大到智慧城市,小到 IoT 等,都少不了 AI 的身影。那么多的应用场景,如何才能实现 AI 在多平台、多场景之间的协同?

华为用达芬奇架构给出了答案。作为华为自研的面向 AI 计算特征的全新计算架构,达芬奇架构具备高算力、高能效、灵活可裁剪的特性。

具体说来,达芬奇架构采用 3D Cube 针对矩阵运算做加速,大幅提升了单位功耗下的 AI 算力,同时还集成了向量、标量、硬件加速器等多种计算单元,辅以最小的计算代价增加矩阵乘的算力,来提升 AI 计算的完备性和不同场景的 AI 能效。

(3D Cube)

而灵活可裁剪的特性则让达芬奇架构能够满足端侧、边缘侧及云端的应用场景,可用于小到几十毫瓦,大到几百瓦的训练场景,解锁 AI 的无限可能。

以华为昇腾处理器为例,昇腾系列处理器就采用了统一的、可扩展的达芬奇架构,是全球第一个覆盖全场景的人工智能芯片系列,无论在低功耗的边缘场景,还是大算力的数据中心场景,昇腾系列都将提供出色的性能和能效比。

此前,华为推出的目前业界单芯片计算密度最大的处理器昇腾 910 就可应用于自动驾驶、平安城市、智能制造、运营商、金融等应用场景。

(昇腾 910 处理器)

不仅如此,华为还基于达芬奇架构提供了高性能的人工智能计算平台 Atlas。通过 Atlas 200 DK AI 开发者套件,开发者可以在 30 分钟内完成开发环境搭建,内置的图形化编程环境,将极大地提升开发效率。并且,得益于昇腾处理器的全栈全场景能力,基于开发者套件开发的程序只需一次开发,即可实现端、边、云全场景部署。

依托采用达芬奇架构的华为昇腾系列 AI 芯片提供的超强算力和全场景需求覆盖,Atlas 已实现算力、边界两大突破。可以说,达芬奇架构满足了人工智能领域对高算力和低功耗的需求,是专为人工智能算力需求而设计的芯片架构。

由此可以说,达芬奇架构是华为面向开发者的十大“吓人技术”的当之无愧的 TOP1。

TOP 2 A-Tune 智能调优技术

对开发者来说,要想软件获得更好的体验,手动调优是个必不可少的过程。不过现在计算机硬件结构越来越复杂,丰富多样的应用对资源的需求也各不相同,这也导致调优过程异常复杂。

为了减少开发者在软件调优上消耗的时间,华为 A-Tune 智能调优技术,可以在程序运行中实时感知应用的运行特征,使系统主动调整底层资源;还可以通过学习引擎对特征进行建模,根据业务负载去匹配最佳资源模型,通过负反馈持续优化。

简而言之,A-Tune 技术相当于在现有系统上加装了大脑,让系统“懂”业务场景,给出最合适的资源模型,使得系统运行更加智能,达到应用性能加速的目的。

由于不必考虑硬件和系统的底层细节,即使是入门开发者,也能达到调优效果,高阶开发者更可针对具体的业务场景进行定制,实现更细粒度的调优。通过将应用 & 系统性能做到最优,A-Tune 技术可以从总体上降低成本。比如,以前你可能需要购买 10 台服务器才能完成的工作,现在可能需要 7-8 台服务器就能实现。

目前,基于 A-Tune 技术构建的华为自研操作系统 openEuler,就体现出了高安全性、高可扩展性、高性能等优势特点。首先,openEuler 能够以加固策略、内核级 OS 安全能力、及多款安全漏扫工具等有效防止入侵,保障系统安全。

同时,openEuler 能够向用户提供服务保障体系,保证超长期的可靠性和稳定性。另外,openEuler 在编译系统、虚拟存储系统、CPU 调度、IO 驱动、网络和文件系统等方面也做了大量的优化。作为高性能的操作系统平台,openEuler 能够满足客户从传统 IT 基础设施到云计算服务的各种需求。

如此友好的技术,排在 TOP 2 也是当之无愧的吧。

TOP 3 S2S 自动微分

第三个技术我们来说说自动微分。

资深的深度学习开发者应该都体会过手动求解的痛苦,不仅求导过程复杂,结果还很容易出错,好在现在有深度学习框架,可以利用自动微分技术轻松解决这个复杂又关键的过程。

我们都知道,深度学习框架的自动微分根据实现原理的不同,分为以 Google 的 TensorFlow 为代表的图方法,以 Facebook 的 PyTorch 为代表的运算符重载,以及以华为自研的 MindSpore 为代表的源码转化方法(Source To Source,S2S)。

(自动微分)

前不久,华为刚发布了自研的全场景 AI 计算框架 MindSpore,而在 MindSpore 中的自动微分就采用了 S2S 形式。在性能和可编程性上,S2S 自动微分显著优于业界图和运算符重载方式,开发者无需重新学习一套新的表达逻辑(图逻辑),用原生 Python 就能实现 AI 算法。

同时,S2S 自动微分能够实现任意算子的微分表达和编译优化,同时实现反向算子自动生成,极大地方便模型开发,为开发者的代码带来更佳性能。在软件硬件协同方面,支持自动优化,无需像其他两种方式需要手动定制。

此外,S2S 自动微分还有着丰富的调试手段。开发者可以使用可视化接口,方便观察程序运行时的状态,同时支持动态执行,帮助开发者在程序运行时进行代码调试。

基于此项技术,华为 MindSpore 不仅可以支持端、边、云独立的和协同的统一训练和推理,同时支持华为提出的全场景。通过这款完整的软件堆栈,华为正在实现一次性算子开发、一致的开发和调试体验,以此帮助开发者实现一次性开发,应用在所有设备端、边缘及云端平滑迁移的能力。

值得一提的是,MindSpore 预计将在 2020 年 Q1 开源。

TOP 4 分布式深度学习技术

通常,深度学习训练过程涉及大规模参数的网络间传递。TensorFlow 使用中心化的网络参数服务器(Parameter Server)来承担梯度的收集、平均和分发工作,对 server 节点的访问会成为瓶颈,带宽利用率低。

为了提高深度学习训练效率,华为采用了 AllReduce 算法进行梯度聚合来优化带宽,这样可以同时利用多个工作节点,分布式地、高效地训练出性能优良的神经网络模型。

同时对传输的梯度进行融合,对小于阈值大小的梯度多次传输合并为一次,提升带宽利用率;另外在通信底层采用 NVIDIA 的 NvLink、P2P 等技术来提升节点内和节点间通信带宽,降低通信时延。

一般情况下,在衡量分布式深度学习的加速性能时,主要有吞吐量和收敛时间两个重要指标。而对开发者而言,最关心的指标也是收敛时间。内置的分布式深度学习技术使得华为云 ModelArts 训练速度有了很大的提升,同时以全栈优化极大地缩短了训练收敛时间。2019 年 5 月在斯坦福大学 DAWNBench 榜单中,华为云 ModelArts 就以 2 分 43 秒的成绩获得图像识别训练世界第一。

TOP 5 图神经网络

现实世界中,大量数据都能被图建模,但当前的深度学习还是以 CNN、RNN 等技术(对应图像识别、文本挖掘等领域)为主。然而,这些技术其实并不能有效地处理图结构数据,尤其是涉及到基因网络、社交网络、商品推荐等复杂应用场景。

而图神经网络(GNN)则可以解决这个问题,它借鉴了深度学习中卷积网络、循环网络和深度自编码器的思想,进行表征学习(如节点嵌入和子图嵌入),或者利用标签和属性信息,以半监督或纯无监督的方式在端到端学习框架中训练。

0 阅读:1