深度学习 + 大规模计算 + 大数据,谁才是未来的算力之王
纵观时代演进的脉络,从农业革命到工业革命再到知识革命,从远古结绳计数到古代珠算与机械计算再到现在的电子计算,数学一直是人类文明进步的主要力量。当今时代,算力作为新型生产力,数据作为新的生产要素,参与价值创造和分配,信息技术成为了驱动经济社会发展的基础动力。
随着 5G、人工智能、云计算、大数据、IoT 等技术的推动,万物互联的时代即将到来,算力需求将越来越大,有望替代热力、电力,成为拉动数字经济向前发展的新动能、新引擎,并成为影响国家综合实力和国际话语权的关键要素,国与国的核心竞争力正在聚焦于以计算速度、计算方法、通信能力、存储能力为代表的算力,未来谁掌握先进的算力,谁就掌握了发展的主动权。
人工智能与深度学习
人工智能(Artificial Intelligence),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它起源于 20 世纪五六十年代,经过半个多世纪的演变,经历了符号主义、连接主义和行为主体三次浪潮的相互交织发展,到如今,作为一项新兴的通用技术,正在推动着社会生活与各行各业的巨变。现阶段人们普遍认为,深度学习+大规模计算+大数据=人工智能。
什么是深度学习?在人工智能领域,机器学习是其中的一个技术流派,通过从已知样本中提炼规律来获得判断未知样本的智能;深度学习则是机器学习的一种,它所学习出来的模型是深度神经网络。
具体来说,机器学习可以理解为机器从已知的经验数据(样本)中,通过某种特定的方法(算法),自己去寻找提炼(训练/学习)出一些规律(模型);提炼出的规律就可以用来判断一些未知的事情(预测),
2006 年以来,机器学习领域深度学习(Deep Learning)取得了突破性的进展。
深度学习是一种特殊的机器学习,在语音和图像识别方面取得的效果,远远超过先前相关技术。它通过学习将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,每个概念都是根据更简单的概念进行定义的,而更抽象的表示则用不那么抽象的概念计算出来。
深度学习算法分「训练」和「推理」两个过程。简单来讲,人工智能需要以大数据为基础,通过「训练」得到各种参数(也就是模型),然后把模型传递给「推理」部分,得到最终结果。
神经网络分为前向计算(包括矩阵相乘、卷积、循环层)和后向更新(主要是梯度运算)两类,「训练」是两者兼而有之,「推理」主要是前向计算,都包含大量并行运算。一般来说,「训练+推理」在云端进行,终端人工智能硬件只负责「推理」。
算力:人工智能的核心要素
近年来,随着深度学习的推进,AI 领域对算力的要求每年增加 10 倍左右。为了达到这个目标,我们需要处理大量的数据。因此,人工智能三大要素:算法、算力和大数据,缺一不可,都是人工智能能够实现大规模应用的必备条件。
1、数据。
人类要获取一定的技能都必须经过不断的训练,才能熟能生巧,AI 也是如此。人工智能的根基是训练,只有经过大量的训练,神经网络才能总结出规律,应用到新的样本上。只有拥有大量数据,且能覆盖各种可能的场景,才能得到一个表现良好的智能模型。
2、算力。
有了数据之后,需要进行不断地重复的训练。深度学习中有三个概念叫 Epoch(“一代训练”),Batch(“一批数据”),Iteration(“一次训练”)。仅仅将训练集从头到尾训练一遍是不够的,需要把训练集翻来覆去训练很多轮。训练和推理都需要强大算力的支撑。
3、算法。神经网络算法和深度学习是目前最主流的人工智能算法。
算力是人工智能的三大要素之一,需要芯片的支撑,这是人工智能进一步发展并实现产业化的关键。
芯片:人工智能竞争的制高点
AI 芯片提供算力,承载算法,是实现人工智能的物理载体,因此是人工智能领域竞争的制高点。
什么是 AI 芯片?从广义上 GPU 与 GPGPU 的定义说,所有面向 AI 应用的芯片都可以称为 AI 芯片,但目前人们普遍认为,AI 芯片是针对 AI 算法做了特殊加速设计的芯片。AI 深度学习需要很高的并行计算、浮点计算以及矩阵运算能力,基于 CPU 的传统计算架构无法充分满足人工智能高性能并行计算(HPC)的需求,因此需要发展适合 AI 架构的专属芯片。
对于人工智能计算架构来说,CPU 配合加速芯片的模式是典型的 AI 部署方案:CPU 提供算力,加速芯片提升算力并助推算法的产生。常见的 AI 加速芯片按照技术路线可以分为 GPU、FPGA、ASIC 三类。其中,应用于图形、图像处理领域的 GPU 可以并行处理大量数据,非常适合深度学习的高并行、高本地化数据场景,是目前主流的人工智能计算架构。
1、GPU 用于大量重复计算,由数以千计的更小、更高效的核心组成大规模并行计算架构,配备 GPU 的服务器可取代数百台通用 CPU 服务器来处理高性能计算和 AI 业务。
2、FPGA 是一种半定制芯片,灵活性强集成度高,但运算量小,量产成本高,适用于算法更新频繁或市场规模小的专用领域。
3、ASIC 专用性强,适合市场需求量大的专用领域,但开发周期较长且难度极高。
GPU:最适合 AI 深度学习的异构芯片
GPU 与 GPGPU 的定义
GPU(Graphics Processing Unit,图形处理器)是进行图像图形相关运算工作的微处理器,最初用途是将计算机系统需要显示的信息进行转换驱动,从而控制显示器的正确显示。
GPGPU(General-Purpose Computing on Graphics Processing Units,通用计算图形处理器)用专门处理图形任务的处理器,运行图形渲染之外的通用计算任务,这些通用计算常常与图形处理没有任何关系。
GPU 的特点是并行处理能力强、计算能效比高,并且有很大的存储带宽。某些应用,例如人工智能(机器学习)模型训练与推理、高性能计算等,往往是大数据流应用,这时,用 GPGPU 解决这类问题,就比 CPU 效率更高,它对于用传统语言编写的、软件形式的计算有较好的支持,具有高度的灵活性。
目前 GPGPU 广泛应用于高性能计算、行业 AI 应用、安防与政府项目、互联网及云数据中心等。其主要应用场景:一是人工智能模型训练与推理;二是高性能计算机。
GPU 的结构
由于 CPU 在图像渲染方面能力不足,GPU 被发明出来分担这部分工作,在屏幕上进行多边形图像渲染,其本质就是并行处理简单任务:每个像素点的色彩可以独立计算,不需要考虑其它像素点。有了这样上千个简单的核心,再配合合适的代码,就能处理超大规模的数学运算,实现逼真的游戏体验。
由于 CPU 有通用性的需求,其单个核心往往会设计得大而全;加上 CPU 计算的特性,核心中有很大一部分面积用来构建缓存(包含 L1 和 L2 两级缓存)和控制单元(解码器与分支预测等前端单元),实际用来运算的单元面积可能仅占整个核心的一半甚至不到。
GPU 的设计理念就不同,图形计算本身就是一项简单而暴力的“粗活”,复杂度远不如 CPU 要负责的各种不同类型的工作,想要提高图形计算速度最简单的办法就是扩大处理器中含有的单元数量。所以 GPU 对于特定的计算任务,因为拥有更大的计算单元,就很容易达到比 CPU 更高的计算速度,表现出来就是 GPU 在浮点运算吞吐量上远超 CPU。
GPU 是基于数据的并行计算
GPU 的关键性能在于可以同时运算一些更简单的问题,然后并行处理,适用于高性能计算领域所涉及的诸如气象、宇宙模型和 DNA 序列等问题,以及数据库查询、密码学领域的暴力搜索、机器学习/深度学习、地理可视化等企业应用。
GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流,无数个线程组合在一起就构成了并行计算网格,成为并行程序,下图展示了多核 CPU 与 GPU 的计算网格:
并行计算有两种类型:一是基于任务的并行处理,这种模式将计算任务拆分成若干个小的但不同的任务,如有的运算单元负责取数,有的运算单元负责计算,等等,这样一个大的任务可以组成一道流水线。二是基于数据的并行处理,这种并行模式将数据分解为多个部分,让多个运算单元分别去计算这些小块的数据,最后再将其汇总起来。
一般来说,CPU 的多线程编程偏向于第一种并行模式,GPU 并行编程模式则偏向于第二种,其对于数据的计算能力更加强大。
人工智能的研究者选择了 GPU
最初,并不是 GPU 选择了人工智能,而是人工智能的研究者选择了 GPU,进而成就了 GPU:2012 年 Alex Krizhevsky(前谷歌计算机科学家)利用深度学习+GPU 的方案,一举赢得 Image Net LSVRC-2010 图像识别大赛,并奇迹般地将识别成功率从 74%提升到 85%。
NVIDIA 敏锐地洞察到了这一趋势,于是耗费巨大的人力物力优化基于自家 GPU 的 CUDA 深度学习生态系统,在三年时间里将 GPU 性能提升了 65 倍,并提供基于其 GPU 的从后端模型训练到前端推理应用的全套深度学习解决方案,使得一般的开发人员都可以非常容易地使用 GPU 进行深度学习开发或高性能运算,从而奠定了其目前的王者之位。
可以说,是人工智能和 GPU 互相成就了对方:人工智能算法促进 GPU 的发展,而 GPU 也让算法更加简单。
综上所述,GPU 是 AI 时代的算力核心,但 AI 算力的构成不仅仅只是 GPU 加速芯片,还需要构建包括网络互联、操作系统、深度学习框架及相应 SDK、算法与应用程序等,形成一个完整的计算生态系统。
评论