图灵奖得主Jack Dongarra:高性能计算与AI大融合,如何颠覆科学计算
在过去的三十年间,高性能计算(HPC)取得了突飞猛进的进展,在科学计算等领域发挥着重要的作用。而当前,云计算和移动计算正逐渐成为主流的计算范式,与此同时深度学习等AI方法所带来的颠覆性影响,给HPC与AI的融合带来了新的挑战和机遇。在第十届全国社会媒体处理大会(SMP 2022)上,图灵奖得主Jack Dongarra梳理了高性能计算近年来最主要的应用和发展。
Jack Dongarra,高性能计算专家,2021年图灵奖获得者,美国田纳西大学创新计算实验室主任。其对数值算法和库的开创性贡献,使高性能计算软件在四十多年中与硬件的指数级改进保持同步。他获得过诸多学术成就,包括 2019 年他获得 SIAM / ACM 计算科学与工程奖,2020 年他因高性能数学软件领域的领导能力获得 IEEE 计算机先锋奖。他是 AAAS、ACM、IEEE 和 SIAM 的研究员,英国皇家学会的外国研究员,以及美国国家工程院的成员。
1 高性能计算广泛应用于科学的“第三极”
当前,高性能计算(HPC)方法广泛地应用于科研仿真,而仿真也被誉为科学研究的“第三极”。一直以来,科学研究和工程研究通常采用基于理论和实验的范式。然而,这两种方法存在很多固有的限制,比如,通常建造大型的风洞非常的困难,试验飞机引擎与飞鸟碰撞的成本将非常昂贵,等待观察气候变化将会非常的耗时与缓慢,新药品和武器等试验将会非常的危险等等。此外,我们有时无法通过实验来研究某些问题,比如研究星系运动和研发新药品等。因此,研究者们逐渐利用科学计算手段进行仿真,研究此类问题。这种方法通常基于已知的物理规律和数字计算方法,通过高性能的计算机系统仿真相应的物理现象。
2 算力之巅——超级计算机
人们一般基于商品化的成熟芯片构建典型的超级计算机,在一个板卡上集成多个芯片,每个芯片中都拥有多个核心(Core)。同时,通常会在板卡上使用图形处理单元(GPU)等作为增强算力的加速器。在同一机架柜上,不同的板卡通过高速的链接进行通信,不同的机柜通过交换机(switch)互联在一起,这样组成的一个超级计算机可能需要占用两个网球场那么大的空间。
这样的超级计算机的并行性非常之高,通常采用的是分布式内存和「MPI+Open-MP」的编程范式。与数据的浮点计算相比,在HPC系统不同部分之间数据的移动非常的昂贵。现有的超级计算机支持包括64,32,16,8等位宽的不同的精度的浮点计算。
当前,最快的超级计算机能够提供Exaflop/s级别(1018)的算力。这是一个非常巨大的数值,如果每个人一秒钟完成一次乘加计算,那么,需要全球所有人花费四年的时间才能完成超级计算机一秒钟完成的计算。同时,为了维持这样的超级计算机的运转,每年需要花费千万美元的电费。
从过去近三十年间全球超级计算机TOP500的性能变化情况可以发现,超算性能近乎保持着指数级的增长速度。有趣的是,如今日常所用的MacBook的性能,比1993年当时世界上最先进的超级计算机的性能还要强大,当时那台计算机制造于洛斯阿拉莫斯国家实验室,主要用于核武器设计。今年6月的数据显示,全球排名前10的超级计算机当中,有5个来自美国,有2个来自中国(分别位于无锡和广州),其余3个来自芬兰、日本和法国。
3 “和而不同”的HPC & ML/AI
HPC和ML计算有着即相似又不同的特性。HPC属于数字计算密集型的,通常输入非常有限的数据,经过非常大量的数字计算,输出大量的数据。而在ML领域进行高性能数据处理(HPDA),通常需要输入大量的数据,输出的却是相对比较少的数据。两者使用的数据精度也非常不同,在科学仿真等高性能计算场景下通常使用64比特浮点数据,而在机器学习场景下会使用16比特浮点数据。
AI在科学研究的诸多不同的方面发挥着非常重要的作用:AI能够在不同领域辅助科学发现,提高计算体系结构的性能,以及在边缘管理和处理大量数据。因此,在科学计算领域机器学习等技术被应用到气候学、生物学、药学、流行病学、材料学、宇宙学甚至高能物理等等很多学科以提供增强的模型和更先进的仿真方法。比如,用深度学习辅助药品研发、预测流行病以及对基于医学影像的肿瘤进行分类等等。
科研仿真和AI计算可以非常有效地进行联合,因为二者都需要模型和数据。通常,仿真使用(数学)模型产生数据,(AI)分析使用数据来生成模型。使用分析方法得到的模型和其他的模型一起可以被用到仿真中去;仿真产生的数据和其他来源的数据一起可以被用于分析。这样就形成了一个相互促进的良性循环。
除了在具体的应用领域相互补充之外,HPC&AI在基本开发方法、软件与软件基础设施和AI硬件架构等领域都有非常多的联系。同时也将二者更广泛地联系起来,比如:AI可以用来引导仿真、更快地调整仿真应用的参数、提供定制化的计算核函数,以及将传统的HPC和神经形态计算相结合等很多内容。AI&ML具有颠覆性的影响力,正如通常所说:「AL&ML并不会代替科学家,但是使用AI&ML工具的科学家会代替那些不使用这些工具的科学家」。
4 展望未来:HPC系统将更加定制化
未来的HPC系统将可以被定制化。当前,HPC主要有CPU和GPU两种类型的处理器,未来将采用更多不同的单元,比如FPGA、ML加速器和ASIC芯片等等。更多采用不同结构和范式的处理器将会越来越多地添加HPC计算系统当中,比如神经形态处理处理、量子计算以及光计算等或将发挥越来越重要作用。在构建新的HPC系统的时候,人们将能够按需使用相应的模块与功能。
5 总结
HPC硬件在不断地演进,有标量计算机器、向量计算机器、分布式系统、加速器以及混合精度计算机器等等。当前计算机领域发生着三个重大的变化,高性能计算、深度学习、以及边缘计算与人工智能。算法和软件应该随着硬件不断的进化,正如Leiserson等人的论文所述,在摩尔定律之后,仍然存在很大的空间可以通过算法、软件和硬件架构去提升HPC系统的终极性能。
6 Q&A
问题1:当前,业界和学界都比较关注神经网络大模型的训练,比如GPT3等具有超过1700亿的参数量,通常需要百个高性能的GPU训练1~3个月。未来采用高性能计算机可以在几天或几个小时内完成相关的训练吗?
回答1:GPU给计算机提供了强大的数值计算的能力。例如,超级计算机中98%的算力来自于GPU。而在CPU和GPU之间移动数据非常耗时。为了减少成本高昂的数据移动,可以通过将GPU和CPU距离更加贴近的方法,采用Chiplet等芯片设计方法或更为切实可行的实现路径。另外,直接将数据和对应的处理单元离得更近的方法对于解决数据搬运成本高昂的问题也将非常有帮助。
问题2:我们观察到一个现象,当前很多机器学习算法可以和硬件一起演化,并且相互影响。比如,当前ML领域性能最好的Transformer模型,英伟达等公司专门为其设计了专用的架构,使得Transformer更好用。您是否观察到这样的现象,如何评论?
回答2:这是一个非常好的例子,展现了硬件设计和其他方面的相互促进。当前很多硬件研究人员密切关注行业的变化,并对趋势做出判断。将应用与硬件进行联合设计可以显著地提升性能,进而销售更多的硬件。我认同这种「算法和硬件共同演化」的说法。
问题3:您指出未来高性能计算将是一个异构的混合体。集成这些部分将是一个非常困难的问题,甚至将会导致性能的降低。如果我们只是单纯地使用GPU,可能会导致更好的性能。您如何评价?
回答3:当前,高性能计算机中将CPU和GPU非常松散地耦合在一起,需要将数据从CPU传输到GPU上进行计算。未来,采用不同的硬件相互耦合到一起的趋势会继续延续。比如,使用专门的硬件做ML计算,可以是对GPU的进一步的增强。通过将ML相关的算法加载到对应的加速器上,在加速器上执行算法的细节并将计算结果传输给对应的处理器。未来也可实现可插拔的量子加速器,使其执行对应的量子算法等等。
问题4:HPC是非常昂贵的,尤其对于研究者和中小企业而言。是否存在类似云计算等方式能够让从事研究的师生和中小企业也用得起HPC?
回答4:在美国,使用HPC需要向有关部门提交相关的申请,说明正在研究的问题和需要的计算量。如果得到批准,就不用担心HPC使用的费用问题。在美国进行过一项是否应该将所有的HPC转变为基于云的系统的研究。结果表明,基于云的方案比直接使用HPC系统贵2-3倍。需要注意的是这背后的经济学假设:HPC被足够多的人共同使用,并且需要解决的问题有时需要使用整个HPC系统。这种情形下拥有一个专用的HPC更优于购买云服务。在美国和欧洲所观察到的现状是这样。
以上是图灵奖得主Jack Dongarra:高性能计算与AI大融合,如何颠覆科学计算的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用C 中的chrono库可以让你更加精确地控制时间和时间间隔,让我们来探讨一下这个库的魅力所在吧。C 的chrono库是标准库的一部分,它提供了一种现代化的方式来处理时间和时间间隔。对于那些曾经饱受time.h和ctime折磨的程序员来说,chrono无疑是一个福音。它不仅提高了代码的可读性和可维护性,还提供了更高的精度和灵活性。让我们从基础开始,chrono库主要包括以下几个关键组件:std::chrono::system_clock:表示系统时钟,用于获取当前时间。std::chron

DMA在C 中是指DirectMemoryAccess,直接内存访问技术,允许硬件设备直接与内存进行数据传输,不需要CPU干预。1)DMA操作高度依赖于硬件设备和驱动程序,实现方式因系统而异。2)直接访问内存可能带来安全风险,需确保代码的正确性和安全性。3)DMA可提高性能,但使用不当可能导致系统性能下降。通过实践和学习,可以掌握DMA的使用技巧,在高速数据传输和实时信号处理等场景中发挥其最大效能。

在C 中处理高DPI显示可以通过以下步骤实现:1)理解DPI和缩放,使用操作系统API获取DPI信息并调整图形输出;2)处理跨平台兼容性,使用如SDL或Qt的跨平台图形库;3)进行性能优化,通过缓存、硬件加速和动态调整细节级别来提升性能;4)解决常见问题,如模糊文本和界面元素过小,通过正确应用DPI缩放来解决。

C 在实时操作系统(RTOS)编程中表现出色,提供了高效的执行效率和精确的时间管理。1)C 通过直接操作硬件资源和高效的内存管理满足RTOS的需求。2)利用面向对象特性,C 可以设计灵活的任务调度系统。3)C 支持高效的中断处理,但需避免动态内存分配和异常处理以保证实时性。4)模板编程和内联函数有助于性能优化。5)实际应用中,C 可用于实现高效的日志系统。

在C 中测量线程性能可以使用标准库中的计时工具、性能分析工具和自定义计时器。1.使用库测量执行时间。2.使用gprof进行性能分析,步骤包括编译时添加-pg选项、运行程序生成gmon.out文件、生成性能报告。3.使用Valgrind的Callgrind模块进行更详细的分析,步骤包括运行程序生成callgrind.out文件、使用kcachegrind查看结果。4.自定义计时器可灵活测量特定代码段的执行时间。这些方法帮助全面了解线程性能,并优化代码。

交易所内置量化工具包括:1. Binance(币安):提供Binance Futures量化模块,低手续费,支持AI辅助交易。2. OKX(欧易):支持多账户管理和智能订单路由,提供机构级风控。独立量化策略平台有:3. 3Commas:拖拽式策略生成器,适用于多平台对冲套利。4. Quadency:专业级算法策略库,支持自定义风险阈值。5. Pionex:内置16 预设策略,低交易手续费。垂直领域工具包括:6. Cryptohopper:云端量化平台,支持150 技术指标。7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

如何实现鼠标滚动事件穿透效果?在我们浏览网页时,经常会遇到一些特别的交互设计。比如在deepseek官网上,�...
