高性能计算与AI融合成为刚需|什么是高性能计算?应用领域有哪些?与人工智能的关系梳理

news2024/11/26 22:50:49

本文一部分转载自杨净 整理自 MEET2023量子位

算力的需求,远比以往来得更为猛烈。甚至有人直呼:得算力者得未来。

元宇宙、AIGC、AI for Science的涌现,又给高性能计算(HPC)平添了好几把火。

在诸多挑战与机遇共存交织的当下,这一领域泰斗中国工程院院士、清华大学计算机科学与技术系郑纬民,在MEET2023智能未来大会上,分享了自己的见解和思考。

估计未来两年到四年,HPC(高性能计算)+AI+BigData融合的服务器就会出现。AI for Science的出现,让HPC+AI的融合成为刚性需求;而数据处理又是AI的基础,数据和AI的融合也很自然。

甚至他还开玩笑说,现在要获HPC领域的戈登贝尔奖,必须要有AI的算法。你没有AI的算法,否则奖都得不了。

虽然这是玩笑说法,但实际上也是一种趋势。

除此之外,他还谈到人工智能计算机设计的三大平衡性原则、AI基准设计四大目标以及如何通过并行方法加速大规模预训练模型。

估计未来两年到四年,HPC(高性能计算)+AI+BigData融合的服务器就会出现。过去HPC是一台机器、AI是一台机器,大数据处理是第三台机器,这三个机器自己管自己,但现在这三台机器正在融合之中;AI基准设计要达到四个目标:统一的一个分数、可变的问题规模、具有实际的人工智能意义、评测程序包含必要的多机通信;现在要获HPC领域的戈登贝尔奖,必须要有AI的算法,你没有AI的算法,否则奖都得不了。这是开玩笑的说法,但实际上也是一个趋势;AI for Science的出现,让HPC+AI的融合成为刚性需求;探索更大参数量模型的效果,是具有重要科学意义的;我们希望人工智能计算机跟HPC有TOP 500一样,也有一个AIPerf 500。(以下是郑纬民院士演讲全文)

人工智能计算机设计的三大平衡性原则

今天给大家讲讲我们团队为人工智能做的三件事,就是AI与算力基础设施的设计、评测和优化。

第一件事,HPC(高性能计算)和AI的应用是不一样的。

HPC的应用领域主要有科学和工程计算、天气预报、核聚变模拟、飞行器设计。它的运算精度是双精度浮点运算,64位甚至128位的,所以加减乘除做得很快,主要是这点不同。

人工智能计算机就是半精度的,甚至是定点的,8位的、16位的、32位的。

因此这两台机器应该是不一样的,而人工智能计算机最近两年才开始有。因此我们团队设计了一台能比较好地处理人工智能问题的计算机,究竟长什么样子?

我们团队第一个贡献,是人工智能计算机设计的平衡性原则。

第一个,计算平衡设计。人工智能是处理单精度的或者定点的,你这台机器是不是只要把定点的、单精度的做好就行了?但实际上也不是。虽然我们主要考虑半精度运算,但是也要考虑到双精度运算的能力。

这两年下来有一个经验:

1)双精度与半精度的运算性能之比1:100比较好。

2)人工智能计算机不能只做CNN的,还要做大模型训练。

因此,提出来叫变精度平衡设计思想,总体来说还要增加通用计算。

第二,网络平衡设计,既然这台机器很大,由上千个、上万个小机器连在一起,那么这个网络也要做得好。如果只做CNN那就好办,但还要考虑训练。这样一来,网络怎么做平衡设计也非常重要。

第三,存储,即IO子系统设计。我们知道现在每台机器都有SSD,怎么把每台SSD联合起来开成一个大的分布式文件系统?这也是很要紧的。

因此,我们提出来这三个平衡设计原则,已被很多公司采用。现在国内20多个城市陆续启动人工智能超算中心,让算力无处不在、触手可及,这其中大多数都用上了平衡设计这个想法。

目前行业有个趋势是HPC+AI+BigData融合在一块。过去HPC是一台机器、AI是一台机器,大数据处理是第三台机器,这三个机器自己管自己,但现在这三台机器正在融合之中。

为何这么说呢?

一方面,AI for Science的出现,让HPC程序中包含了AI算法。因此HPC+AI的融合,成为刚性需求。

我曾经开玩笑说,你现在要获HPC的领域戈登贝尔奖,必须要有AI的算法,你没有AI的算法,否则奖都得不了。这是开玩笑的说法,但实际上也是一个趋势。

另一方面,数据处理是AI的基础,数据和AI的融合也很自然。因此,我估计两年到四年,HPC、AI和BigData融合的服务器就会出现。

这是我们小组第一个贡献,即人工智能计算机应该长成什么样子。

AI基准设计要达四个目标

第二个贡献,大规模人工智能算力基准评测程序AIPerf。

什么意思呢?传统HPC有个评测程序Linpack,TOP500就是它评出来的,但它不能用于AI计算机评测。Linpack是用来测64位,甚至128位加减乘除做的快慢。现在人工智能计算机是16位、32位,甚至8位,这是完全不一样。

因此,我们需要做一个能回答这个问题的人工智能算力基准测试程序。我们希望有个简单的评价指标,来判断哪家系统的人工智能算力更强。

那现在有没有相应的评测程序呢?其实也有,但没有太合适的。

比如,DeepBench针对单个芯片,不适用于整机评测。Mobile AI Bench针对的是移动端硬件上的模型训练评测,不是整个系统的。MLPerf可扩展性不好。因此,我们决定要自己做一个。

做个AI基准设计一定要达到这四个目标:

1、统一的分数。我们希望运行Benchmark出来一个值,就一个值就行了。而不是结果出来一个报告,这样看起来很费劲。

2、可变的问题规模。Benchmark可以测4个节点组成的机器,也可以测1000个、20000个,要规模可变,大规模的做起来也挺费劲。

3、具有实际的人工智能意义。不能随便说加减乘除,那就不能反映人工智能的问题。特别是要反映人工智能问题中的神经网络运算、自然语言处理能力。

4、评测程序包含必要的多机通信,因为是一个大的系统,由多机连起来的,需要有通信。

最后,以清华大学为主的团队做了一个AIPerf来测试,于2020年11月15日首次发布。我们希望人工智能计算机跟HPC有TOP 500一样,也有一个AIPerf 500。

现在它已经连续三年每年都发布排行榜,得到了很多单位、企业的认可。

大规模预训练模型的三种并行加速方法

第三个贡献,百万亿参数超大规模训练模型的加速方法。

简单举个例子,学界至今已形成一个共识:模型规模和模型效果呈正相关关系。GPT有1.1亿参数,GPT-3有1750亿参数,悟道2.0有1.75万亿参数,我们做的BaGuaLu却有174万亿参数,应该说参数越多,效果越好,越接近人的智慧,但有个问题就是,训练数据越多,要求的算力也就越大。

再来看左边这张图SAT(美国高考)任务的情况,如果模型参数达到100B(相当于1000亿个参数),那么模型完成SAT,就有70%的准确度。

因此,探索更大参数量模型的效果,是具有重要科学意义的。

但模型越做越大,问题随之而来。现在国内很多单位模型都做得很好,但怎么把模型安装到一台机器上去,这有讲究。

举个例子,我们就将BaGuaLu模型安装到了新一代神威体系结构芯片上。

图上可以看到,核组共有64个核,再加上黑色主核,共有65个核。一个CPU共有6个这样的组成:CG0、CG1、CG2、CG3、CG4、CG5,这6个通过环形网连在一起。我们称之为一个节点,将它集成到一块,一个节点大概有390个核。一共有256个节点组成超节点,超节点内部通信一步直联,超节点跟超节点之间要经过上层的网络。

因此,256个节点内部通信很快,一步就到。但超节点之间的通信就比较慢了。

而要将大模型在这台机器上运行,问题就来了。现在预训练模型都是Transfomer,而Transfomer结构是嵌入层、注意力层、前反馈网络层,中间注意力层跟前反馈层都会经过N次迭代,整个运算又基本上是矩阵乘法。

如果一个模型能在单个CPU上运算,那最省事了,但CPU的计算能力有限,内存也有限,模型也就大不到哪里去。因此大模型训练一定是多机的、分布的,这就涉及到了多种并行方法。

第一种,数据并行。假如整个模型设两个节点,一个模型节点0、另一个模型做的节点1,整个模型都做了数据并行,数据各一半要拿去训练学习,但是要注意训练完了以后不是最终的结果,因为只输入了一半的数据。因此这中间要AII-Reduce,AII-Reduce就做好多通信,整件事情就会很复杂。

第二种,模型并行。将整个模型切成一半,一半模型节点0,一半模型节点1,数据是整个拿去训练。训练完了以后出来的结果也不是最终结果,因为只训练了一半的模型,出来还有AII-Gather,也是做通信的。

第三种,专家并行,跟数据并行、模型并行一样,同样要求通信。

现在如果你只有一种方法,究竟用哪种并行方法呢?实际上这跟计算机结构有关。如果每台计算机之间通信都非常快,那么用数据并行就可以;如果你的通信比较慢,就要考虑模型并行或者专家并行。

因此,这些模型如何跟数据、机器实际情况匹配?这就涉及到软硬件协同这件事。

我们在新一代神威机器上采用了“拓扑感知的混合并行模式”。

具体而言,刚才提到,该体系架构节点内部通信很快,但超节点之间通信比较慢。因此在混合并行模式下,一个通信超节点内部,采用数据并行;超节点之间则采用专家并行或模型并行。

除此之外,还有内存大小、访问内存等问题:怎么样让内存访问的比较快,负载比较均衡?

做大规模模型训练时,平均每小时都会发生一次硬件软件出错,不要以为这个机器不可靠。目前这个水平已经很好了。因此,一般都要做检查点,如果写的不好,这件事情就有做三个小时,怎么能让它加速呢?最后我们做到了10分钟就完成了。

现在,我们把模型开源了,尤其是并行训练模型,将他们放在了开源系统FastMOE里,现在得到了工业界很多认可,像阿里巴巴的淘宝、天猫,腾讯的端到端语言模型,都用上了我们的并行系统。百度飞桨的MOE模块,也使用了我们的FastMOE。

最后总结一下,一是人工智能算力是当前人工智能领域发展的关键。

二是团队对人工智能的三点小贡献:

1)提出了一种AI算力基础设施的架构和平衡设计原则,现在全国20多个城市的20多个人工智能超算中心基本上都采纳了我们的设计思想。

2)做了评测,即人工智能基准测试程序AIPerf,现在每年都会发布500名榜单,在国内外产生了一定影响。

3)大模型怎么训练得快?特别是关于数据并行、模型并行,还是专家并行。我们做了一个库放在Open Source上。现在工业界都来用我们的东西,使得大训练模型训练能够加快。

因此,我们团队对人工智能做了这三点小贡献,希望能够推动人工智能的发展。

讲的不对的地方请大家批评指正。谢谢大家!


1.高性能计算

高性能计算简称 HPC(High Performance Computing) ,通常指使用多个处理器或指由多台计算机通过网络连接所组成的的计算系统,主要用于完成需求庞大计算资源的复杂计算任务。自从1946年第一台被用于计算弹道导弹发射模型的现代电子计算机ENIAC(Electronic Numerical Integrator And Compute)问世以来,计算技术的应用领域不断扩展,各领域对计算机计算能力的需求推动了科学家们对高性能计算的研究,促进了高性能计算机和高性能计算技术不断向前发展。高性能计算集群自诞生以来,其计算性能获得了巨大的提升,从最早的每秒数千次,到如今的每秒万亿次。

2.高性能计算的应用领域

各种应用对于计算能力的需求是高性能计算技术不断发展的根本动力。传统的高性能计算应用领域包括:气象预测、石油勘探、量子化学、生命科学、核技术、流体力学、结构力学,国防和安全等。随着社会经济的发展和科学的进步,不仅高性能计算的应用需求逐渐增大,其应用范围也不断拓展,包括新能源、新材料、航天技术、环境科学、金融、人工智能、互联网等新兴产业。

3.高性能计算与人工智能的关系

高性能计算为人工智能的发展提供了重要的支持。人工智能算法通常需要大量的计算资源来进行训练和推理。高性能计算能够提供高速计算、大规模并行处理和优化算法等能力,为人工智能算法的训练和推理提供了强有力的支持。另一方面,人工智能技术也推动了高性能计算的发展。例如,在人工智能领域,高性能计算可用于图像和语音识别、自然语言处理、机器学习等任务,加速模型训练和推理过程,提高智能系统的性能和效率。

当人工智能中机器学习有巨大的数据和训练任务时,比如北斗三号全球卫星导航的智能图像识别,有全球如此庞大的卫星图像资料,要处理的数据量非常巨大,单靠数据挖掘和图像处理上的优化虽然能够提高遥感系统的准确性,但很难保证卫星遥感的及时性,也就是计算的时间过长,不利于卫星的及时导航和紧急情况的立刻反馈,这就需要高性能计算机对数据进行并行快速处理,来满足卫星的及时反馈要求。

人工智能对多用户和大数据的处理如全球极端天气预测、核爆模拟和智能导航等需要有极大的数据处理能力的高性能计算机的支撑,并随着用户和数据的增多需求越来越强烈。

总的来说,人工智能和高性能计算都是未来发展的重点,虽然两者各有侧重,但是如果将两者的优势结合在一起,就能各取所长补其所短,能更快更智能地解决目前存在的很多问题。

我国的超级计算机已经走在世界的前列,但是应用于人工智能的软件和硬件都很少,而且缺乏从应用的角度去解决工业和企业实现存在的应用难点,超级计算机的潜力没有得到充分的释放。

如果从人工智能的角度去运用高性能计算机,在运行快的基础上能够运行得智慧起来,这将大为提高高性能计算机的科学研究能力和实际的经济效果,而且能够带动我国极其需要的软件设计人才的培养和芯片生产工业的发展,并为我国着重发展的新材料研究、航空航天器设计、基因工程探索以及量子计算模拟等国防和关键领域的发展带来新的技术支撑和解决方案。

可以预见,人工智能和高性能计算的结合将是未来发展的必然趋势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据治理入门系列:数据管理

在如今的大数据时代,每天都会产生大量的新数据,已有数据可能也会频繁更新或转换。因此,需要对数据进行治理和管理,以便高效地开展数据分析、获取数据洞见、挖掘数据价值。否则,杂乱无章的数据只会白白浪费存储空间&…

python基础----10-----python操作mysql

一 前言 对于SQL章节前言->SQL_DQL_排序分页的课程,这里不做记录,因为都是讲MYSQL本身的内容,与python无关。 当然,接下来的课需要用到mysql,所以大家需要自行下载,这并不难。 二 python操作MYSQL基础…

当BPM遇上低代码 “自定义”提升业务管理效率

业务流程管理(BPM)的历史可以追溯到科学管理和质量管理的发展,并逐步演变为一个更加系统化和综合的管理方法。它在现代组织中起到了优化业务流程、提高效率和质量、增强灵活性和创新能力的重要作用。 从20世纪初的科学管理理论中&#xff0c…

【Linux】什么是进程(process)?

目录 进程与程序概念描述进程-PCBWindows进程与Linux进程Linux进程操作子进程父进程创建进程(初识-fork) 进程与程序概念 在Linux系统中,触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,成为PID&#x…

Apikit 自学日记:如何安装 Apikit

Apikit 有三种客户端,你可以依据自己的情况选择。三种客户端的数据是共用的,因此你可以随时切换不同的客户端。 肯定会有和我一样的小白,第一次听说 Apikit这个工具,那么我今天和大家一起学习下这个工具如何安装。 我们推荐使用新…

校招失败后,在小公司熬了 2 年终于进了华为,这次真是竭尽全力了····

其实两年前校招的时候就往华为投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

Angular实现用ng-class和ng-style控制数组最后一个数据为红色

首先我们来看class方案实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

Python模块的安装

1.用pip命令安装模块 pip是python官方的编程环境提供的一个命令&#xff0c;主要功能就是安装和卸载第三方模块。 用pip命令安装模块的方法最简单也最常用&#xff0c;这种默认将模块安装在python安装目录中的“site-packages"文件下。 1.1 pip命令安装模块的具体方法 …

MySQL的索引为什么要下推?

文章目录 一、回表操作 二、主键索引 三、非主键索引 四、低版本操作 五、高版本操作 六、总结 一、回表操作 对于数据库来说&#xff0c;只要涉及到索引&#xff0c;必然绕不过去回表操作。当然这也是我们今天所讲的内容的前提基础。说到回表&#xff0c;我们需要从索引…

HarmonyOS学习路之开发篇—Java UI框架(DirectionalLayout)

DirectionalLayout DirectionalLayout是Java UI中的一种重要组件布局&#xff0c;用于将一组组件(Component)按照水平或者垂直方向排布&#xff0c;能够方便地对齐布局内的组件。该布局和其他布局的组合&#xff0c;可以实现更加丰富的布局方式。 DirectionalLayout示意图 支持…

微信小程序实现瀑布流布局效果

一、效果 二、内容 1、xml代码 <!-- 列表 --><view class"list_title">推荐</view><view class"waterfall"><block wx:for"{{list}}" wx:key"index" wx:for-index"id" wx:for-item"itemNam…

cmd进入mysql及常用的mysql操作

cmd进入mysql操作 winR&#xff0c;输入cmd&#xff0c;打开cmd窗口&#xff0c;进入到 mysql bin目录的路径下 第一步&#xff1a;启动mysql服务&#xff0c;可以通过“net start myql”命令实现&#xff1b; 第二步&#xff1a;先使用DOS命令进入mysql的安装目录下的bin目…

ChatGPT 国内镜像网站独家汇总:发现最优秀的人工智能对话体验

欢迎来到我们的 ChatGPT 镜像网站汇总博客&#xff01;在这个令人激动的人工智能时代&#xff0c;ChatGPT 作为一款顶尖的语言模型&#xff0c;已经引起了全球范围内的热议。但是&#xff0c;您是否曾经为了找到最佳的 ChatGPT 使用体验而苦苦搜寻&#xff1f;别担心&#xff0…

程序员工作中的 80/20 法则如何体现?

80/20 原则的基础概念 该原则认为&#xff0c; 大部分效果出自少数起因。例如&#xff0c; 少数人得到大部分收入&#xff0c; 少数研究者做出大多数创新成果&#xff0c;少数作者写出大部分图书&#xff0c;等等。 您可能听说过 80/20 原则——它在个人生产力文献中随处可见…

国产文档控件Spire.Doc for.NET ,增强从 Word 到 PDF 和 HTML 的转换

Spire.Doc pack &#xff08;hotfix&#xff09; 11.5.12 增强了从 Word 到 PDF 和 HTML 的转换 很高兴地宣布发布 Spire.Doc 11.5.12。此版本增强了从 Word 到 PDF 和 HTML 的转换。此外&#xff0c;此版本还修复了一些已知问题&#xff0c;例如应用程序在加载文档时抛出“Sy…

django实现读取数据导出生成excel表格

目录 一、简单示例&#xff1a; 1.创建文件对象&#xff1a; 2.添加工作表&#xff1a; 3.写入数据&#xff1a; 二、实践出真理 需要先安装xlwt模块 pip install -i https://pypi.douban.com/simple xlwt一、简单示例&#xff1a; import xlwt# 创建一个Excel文件对象 …

教你该如何设计接口测试用例方法!

目录 前言&#xff1a; 一、用例设计过程&#xff1a; 二、接口测试用例构思结构&#xff1a; 三、测试过程验证点&#xff1a; 前言&#xff1a; 接口测试用例设计方法是进行接口测试的重要步骤。设计有效的测试用例可以帮助我们发现软件中可能存在的问题和缺陷&#xff…

有了IP地址,还需要MAC地址嘛?二选一可否?

概要 在计算机网络中&#xff0c;IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址&#xff0c;而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址&#xff0c;但是它们的作用和使用场景是不同的。 IP地址是在网络层&am…

Xilinx原语——IDDR与ODDR的使用(Ultrascale系列)

Xilinx原语——IDDR与ODDR的使用&#xff08;Ultrascale系列&#xff09; 一、IDDR1.1 OPPOSITE_EDGE1.2 SAME_EDGE1.3 SAME_EDGE_PIPELINED1.4 三种模式异同 二、ODDR三、IDDR与ODDR仿真3.1 IDDR仿真3.1.1 IDDR顶层3.1.2 TestBench3.1.3 仿真结果 3.2 ODDR仿真3.2.1 ODDR顶层文…

5.2.9 无分类编址和CIDR

5.2.9 无分类编址和CIDR 前面我们知道&#xff0c;为了更加合理的使用IP地址&#xff0c;采用了子网划分的方法&#xff0c;事实证明子网划分这种网络编址&#xff0c;能够节省IP网络地址&#xff0c;但是到了1993年的时候因特网的增长速度还是让人们感觉到了这些技术它无法阻…