采用人工智能的工作负载如今变得无处不在,其中有的工作负载在世界上运行最快的计算机上运行,从而改进高性能计算(HPC)。随着组织规划未来的发展,需要解决人工智能工作负载的编程、软件需求、硬件需求和培训需求等问题。在2019年,行业专家和人工智能专家将继续创造创新的解决方案。
以下是人工智能在2019年对高性能计算产生最大影响的十种方式:
1. 张量(Tensors):人工智能计算的通用语言
向量代数的应用催生出为向量计算设计的计算机。Cray公司早期推出的超级计算机就是一种向量超级计算机,它将应用程序表达为向量和矩阵代数问题,这反过来又加强了计算机的设计,以确保向量计算的快速运行。多年来,这种强化循环强烈定义了高性能计算(HPC)。张量代数可以被接受为广义矩阵代数,因此它是超级计算机数学能力的自然演化,而不是一场革命。任何支持矩阵运算的机器都可以进行张量运算。如今的CPU的用户采用编译器,加速采用Pythons,加强库和优化框架的支持,获得对向量和张量的高性能支持,所有这些都允许软件开发人员使用高性能环境中的向量和张量。
张量技术在硬件、软件和人们的思想上都在高性能计算应用中留下了深刻的印象。
2.语言:高级程序设计
Fortran程序在消耗周期方面占据了高性能计算的主导地位,C和C ++程序几乎耗尽了高性能计算中的其他资源。通常通过C接口、扩展和库来支持加速器周期。尝试使用新语言来破坏这种情况已经失败,因为现有语言具有适合构成高性能计算的应用程序的用户、代码和支持。
人工智能为新用户带来了新的需求,这将扩展与高性能计算相关的语言,并不会改变大多数使用Fortran代码的物理学家的活动,但使用MATLAB和Python的数据科学家需要根据他们的需求量身定制解决方案。
Python以及其他生产力语言和框架似乎将成为越来越多的高性能计算(HPC)周期的主人。他们的实际数字运算程序仍将用C/C ++/Fortran编写,但人工智能程序员既不会知道,也不会关心它。
3.以不同方式思考:通过利用机会重新思考方法来替换遗留代码
高性能计算(HPC)是一种传统技术,人工智能相对来说是一种新技术。显然,随着人工智能的成熟,它将创造自己需要支持的重要遗产。就目前而言,当这两种技术结合时,它将鼓励有关重新实现遗留代码的对话,这在某些情况下可能已经过期。其借口可能是为代码添加一些人工智能功能,但现实将是一些有益的努力以及一些严重的时间浪费。
4.可移植性和安全性:虚拟化和容器
可以安全地在机器上运行吗?这是虚拟化和容器试图解决的安全性和可移植性问题。当然,安全性来自于良好构建的硬件和软件的安全功能。对于许多人来说,虚拟化和容器似乎是最好的组合。
容器已引起许多开发人员对虚拟机的关注,因为在部署、修补、云计算多功能性方面,它们被视为比虚拟机更灵活,并且可以节省虚拟机许可成本。
在面向高性能计算或人工智能的会议上谈论容器技术似乎并没有太大的进展,这并不奇怪。例如,Python和Julia在精心配置时可以更好地扩展,而容器可以帮助部署。
容器提供了一种为用户提供良好调整环境的自然方式,高性能计算行业将在2019年看到越来越多的容器使用,部分原因是由于人工智能用户的兴趣。毫无疑问,高性能计算会对其实例施加压力,这是需要优化的生态系统。这个领域正在进行这方面的大量工作,高性能计算的社区将帮助所有人实现这一目标,以满足对容器的渴望。
5.规模问题:大数据
哪里有人工智能,哪里就有大数据。人工智能社区的主要关注点是在使用非常大的数据模型中获取意义。采用的高性能计算应用程序需要大量文件,许多高性能计算运行中心已经有很多基础设施可以很好地处理大数据问题。
所有高性能计算中心都将大数据作为新系统的主要要求考虑在内,人工智能工作负载是大数据需求的主要动力。
内存的价格高昂,但人们已经看到内存容量与flop/s的比率多年来一直在下降。这是影响大数据发展的趋势。围绕内存的新功能提供了扭转这一趋势的希望,并支持人们需要的大型机器(包括高性能计算机)中的大数据模型。这些新的内存技术提供了内存和本地存储器(SSD)的扩展。
高性能计算对于人工智能的发展发挥重要作用。组织希望把数据放在离处理器更近的地方,这是最适合做真实数据可视化的处理器,是高性能计算影响人工智能/机器学习的最大方式之一。使用和理解大数据的概念,以及可视化数据和分析,是相互交织的。
6. 人工智能采用云计算
人工智能开发人员可能比高性能计算开发人员更多地接受云计算。虽然应用在云中的高性能计算已经出现,但是针对人工智能应用的高性能计算将加速云中的高性能计算。
7.硬件:,专注于库和框架的交互式功能
人工智能的工作量并不大。这意味着少数库接口和框架支配 “人工智能加速器”需要作为卖点。
交互性是一个长期存在的请求,通常在高性能计算系统中一直处于“次要地位”,被人工智能程序员直接置于前沿和核心。高性能计算这种变化的速度还有待观察,但2019年这一领域的创新将是值得注意的,即使是零散的和有些隐蔽的。交互性也可以称为“个性化”。
高性能计算支持更多的硬件多样性、交互性支持以及针对性能优化的额外库/框架抽象,以支持人工智能工作负载。高性能计算社区对性能的关注将有助于说明基础设施的额外融合将有利于数据中心部署。没有人愿意放弃性能,如果不必这样做,高性能计算社区的专业知识将有助于商品化人工智能/机器学习的性能,从而导致社区之间更多的硬件技术融合。
8.人员融合:用户多样性和对高性能计算的兴趣增加
人工智能将注入许多不同背景的新人才。人工智能将以前所未有的规模给高性能计算带来民主化。在过去的几年中,“高性能计算的民主化”这个短语用于描述高性能计算如何被工程师和科学家群体的访问。数学和物理问题可能推动了早期的超级计算工作量,但最近越来越多的用户发现,在医学、天气预报和风险管理等领域,高性能计算工作量是不可或缺的。
人工智能的用户群体比高性能计算要广泛得多,给高性能计算的民主化带来了全新的维度。如今,高性能计算专家和人工智能专家正在联合起来进行开发。
9.新投资:推理
机器学习通常被认为是由称为“训练”的学习阶段和称为“推理”的实施阶段组成。似乎需要更多的周期来进行推理,而不是进行训练,特别是当人们看到机器学习无处不在地嵌入到周围的解决方案中时。
有了如此巨大的市场机会,让人觉得整个世界都在试图从这一推理市场中获得更大的份额。推理已经在处理器、FPGA、GPU、DSP和大量定制ASIC上实现。功率、延迟和总体成本是关键因素,这些因素为人们提供了一系列具有不同卖点的选项。高性能CPU加上低延迟、易于重新编程和可预测延迟的FPGA似乎是补充当前CPU主导的推导世界的合理选择。时间会证明一切。
人们将发现推理工作负载将对包括高性能计算在内的所有计算产生重大影响。
10.应用程序的融合:不是在“重新思考”之后进行更换
扩展工作负载多样性,并将看到各种工作负载进行融合。那些有远见的人已经证明,当高性能计算机和人工智能结合在一起时,有许多机会。从将系统集成到能够预测极端天气(如飓风)的模式,再到气候或天气预报系统。现在出现了各种想法。生成对抗网络(GAN)是许多人高度重视的一类机器学习系统,生成对抗网络(GAN)无疑将有助于融合高性能计算和人工智能/机器学习工作。
虽然现在很少有应用程序结合高性能计算和人工智能技术,而基于该领域的早期结果,很容易预测这是高性能计算应用程序的未来,并将构成高性能计算因人工智能而面临的最大变化。
理解这十种方式
计算的故事在某种意义上并没有改变:它完全取决于整个系统对用户的作用。虽然需求发生变化,但完整系统由硬件和软件组成的事实并没有改变。很容易被单一技术(硬件或软件)分散注意力,最好的系统会在最有帮助的地方小心地应用新技术。
结论:人工智能将使用高性能计算,并将永远改变
事实上,人工智能可能是高性能计算历史上最大的变革推动者。高性能计算不断发展,因为已经通过自己的工作负载来实现,并且它也将在人工智能中发展。
即人工智能用户只需加入高性能计算社区并在其上加上自己的标记。他们也将使用非高性能计算系统,就像其他高性能计算用户一样。
将有专为人工智能工作负载设计和构建的定制高性能机器,而其他机器的人工智能工作负载也在具有非人工智能工作负载的更通用的高性能设施上运行。平衡机器在需要高性能灵活机器的情况下才能实现加速。人工智能将有助于未来定义什么成为超级计算机,因此可能将会调整高性能计算机的进程。