采用人工智能的工作负载如今变得无处不在,其中有的工作负载在世界上运行最快的计算机上运行,从而改进高性能计算(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. 人工智能采用云计算
人工智能开发人员可能比高性能计算开发人员更多地接受云计算。虽然应用在云中的高性能计算已经出现,但是针对人工智能应用的高性能计算将加速云中的高性能计算。