HPC+AI融合发展的挑战和应对方法探讨
发布日期:2021-06-30 18:34:32 浏览次数:2 分类:技术文章

本文共 4587 字,大约阅读时间需要 15 分钟。

凌云时刻

HPC+AI融合的需求

传统的高性能计算(HPC, High Performance Computing)主要用于科学研究领域的数学计算问题,核心是各类方程组的求解计算,数据类型以浮点类型为主。以这类计算为目标,大规模高性能计算集群系统的体系结构具备三大特点:支持单双精度浮点计算的高性能处理器结点,支持RDMA协议的高速互连网络和高带宽的并行文件系统。

当前以神经网络为代表的AI训练计算,采用随机梯度下降 SGD算法,核心操作是矩阵卷积,数据类型是单精度浮点甚至更低精度。AI训练过程是一种典型的计算密集型应用,使得采用SIMT(Single Instruction Multiple Threads)并行技术的GPU处理器的算力得到了很好地发挥,同时以caffe为代表的一系列框架简化了深度学习在异构系统上的编程,极大地驱动了GPU在AI领域的广泛应用。

发展上来看,一方面,AI人工智能离不开算力的支撑,训练对计算能力的需求每3.5个月增长一倍。从AlexNet到AlphaGoZero,计算量上增长了30万倍[1]。AI训练越来越离不开大规模HPC计算的支撑。另一方面,AI计算在材料科学、生命科学和大气海洋等HPC应用领域发挥越来越重要的作用,推动HPC计算领域的科学发现,帮助人们进一步理解科学问题。例如,AlphaFold在蛋白质结构预测上取得了巨大的进步,以高精度预测蛋白质的立体结构,这项成果也入选Science的2020年度十大科学突破之一[2]。AI和HPC的相爱相生使得HPC和AI的融合需求越来越强烈。

 

面临的挑战和解决方法

相爱容易相处难,如何实现HPC和AI的真正融合面临着一系列的技术挑战。本文接下来分析HPC和AI融合需要解决的核心问题和方法。

1)资源管理器

资源管理是集群系统的核心基础软件,是用户和集群资源之间的中间件,即需要管理集群资源,又需要提供用户使用接口。既要关注资源利用率,系统的吞吐率;又要保证用户提交作业的响应时间。

现有的HPC以CPU计算为核心,70%左右的HPC应用软件仍是MPI或者MPI+OpenMP的纯CPU并行版本[3]。因此,HPC的资源管理器采用exclusive排他的方法进行资源的调度[4]。然而,这种调度方法,当有CPU作业占用结点资源时,会造成空闲的GPU无法被调度使用,使得资源产生巨大的浪费;AI以GPU计算为核心,资源调度以GPU加速部件为核心,强调GPU的公平性、亲和性和利用率[5] [6],使CPU资源产生一定的浪费。

HPC+AI融合的场景,如何实现CPU作业和GPU作业的融合调度,降低作业间的相互干扰,提升资源利用率是融合调度器的核心。以GPU+固定CPU核心数为粒度划分资源调度组,建立作业间的性能干扰模型,通过二分图方法选择最优资源进行调度,实现作业的融合调度。这种方法既能提升资源的利用率和系统的吞吐率,又能保障用户作业的响应时间。

2)文件系统和数据管理

HPC系统使用以Lustre为代表的并行文件系统,目标是面向大文件获得高IO访问带宽,通过跨多个对象存储目标分布数据(条带化数据)来实现高带宽和可扩展性;AI存储访问以海量小文件为特点,对文件系统的元数据性能要求更高。两类应用的文件系统在设计目标上存在差异。

HPC+AI融合的场景既需要处理大文件的高带宽,又需要处理海量小文件的元数据访问性能,这为文件系统带来了巨大的挑战。借助不同性能的存储介质,建立分级存储,统一数据访问层,一定程度上放松POSIX语义,是解决HPC+AI融合数据存储的核心关键。

3)智能基础算法库

从大量应用中抽取共性的基础运算操作,形成基础数学库,能够使应用开发者更加关注应用本身,而且可以更好地发挥系统性能。HPC程序领域设计了以BLAS(BasicLinear Algebra Subprograms)为代表的基础数学库,包含基础的向量和矩阵的数学操作,取得了广泛的应用,BLAS库也被认为是10大改变科学的计算机程序之一[7]。深度学习设计了cuDNN等基础数学库,包含面向Tensor数据结构的基本操作。

然而,HPC和AI的计算在矩阵类型,基础数学操作和计算精度上都存在差异,这也使得基础数学库无法有机的融合。例如,AI和HPC的稀疏矩阵在稀疏性、每行非零元素的分布性上存在区别,导致它们的计算优化方法存在较大差异。同时,为了充分发挥处理器性能,基础算法库的计算核心使用汇编进行优化。这项因素使得基础算法库的开发成本高,而且可移植性差。通过扩充tensor数据结构,增强tensor的表达能力,面向不同体型结构,使用AI技术自动生成不同精度的优化算法库,为HPC+AI融合场景构建智能基础数学库。

4)分布式计算的通信优化

通信是影响并行计算可扩展性的核心因素之一。MPI并行程序34%的运行时间花费在MPI通信上[8],分布式AI训练的性能也受到通信性能的制约。RDMA(Remote Direct MemoryAccess)协议是HPC计算的通信基础,当前AI计算也广泛使用RDMA协议加速分布式训练中的通信过程。HPC计算中的通信以近邻模式,聚合通信等模式为主,AI计算中最重要的通信是allreduce的聚合模式。阿里云智能的大计算集群部前期在AI计算的通信上做了很多实践工作,提出了拓扑感知的allreduce通信优化算法,在实际的应用场景中取得了很好的加速效果。

5)软硬件协同优化

大规模并行计算系统的设计往往是以应用为导向,通过benchmark和典型应用的特征分析,提出对体系结构的需求,进行系统设计。同时,结合体系结构特点对应用进行优化,实现应用和体系结构间更好地融合。例如,Google的AI超算系统采用专用的TPU芯片,并利用模型并行、参数更新划分、全局加法通讯优化、评估指标的分布式计算和输入流水线优化等软件方法,极大地提升了训练性能。目前世界上最快的日本Post-K超算系统,在ARM v8的通用处理器中增加半精度计算,即能实现高性能的科学计算,又使通用处理器更好地支持AI计算。在应用和体系结构间开展软硬件协同设计,是在摩尔定律放缓的情况下,更好地发挥晶体管价值的重要途径。分析应用特征,利用应用特征数据驱动体系结构的设计和优化;针对体系结构特点,开展应用在大规模系统上的优化,能够更加充分地挖掘体系结构的潜能,使应用得到更多的性能提升。

 

参考文献

[1]OpenAI,AI and Compute, https://openai.com/blog/ai-and-compute/

[2]2020BREAKTHROUGH of the YEAR, https://vis.sciencemag.org/breakthrough2020/

[3]Ignacio Laguna, Ryan Marshall, Kathryn Mohror, Martin Ruefenacht, AnthonySkjellum, and Nawrin Sultana. A large-scale study of MPI usage in open-sourceHPC applications. In Proceedings of the International Conference for HighPerformance Computing, Networking, Storage and Analysis (SC '19). Associationfor Computing Machinery, New York, NY, USA, Article 31, 1–14, 2019.DOI:https://doi.org/10.1145/3295500.3356176

[4]XiongchaoTang, Haojie Wang, Xiaosong Ma, Nosayba El-Sayed, Jidong Zhai, Wenguang Chen,and Ashraf Aboulnaga. 2019. Spread-n-share: improving application performanceand cluster throughput with resource-aware job placement. In Proceedings of theInternational Conference for High Performance Computing, Networking, Storageand Analysis (SC '19). Association for Computing Machinery, New York, NY, USA,Article 12, 1–15. DOI:https://doi.org/10.1145/3295500.3356152

[5]Wencong Xiao, Shiru Ren, Yong Li, Yang Zhang, Pengyang Hou, Zhi Li, Yihui Feng,Wei Lin, Yangqing Jia, AntMan: Dynamic Scaling on GPU Clusters for DeepLearning, The 14th USENIX Symposium on Operating Systems Design andImplementation (OSDI ’20)

[6]Narayanan, D., K. Santhanam, Fiodar Kazhamiaka, Amar Phanishayee and M.Zaharia. Heterogeneity-Aware Cluster Scheduling Policies for Deep LearningWorkloads, The 14th USENIX Symposium on Operating Systems Design andImplementation (OSDI ’20)

[7]Jeffrey M. Perkel. Ten computer codes that transformed science. Nature, 2021

[8]S. Chunduri, S. Parker, P. Balaji, K. Harms and K. Kumaran,"Characterization of MPI Usage on a Production Supercomputer," SC18:International Conference for High Performance Computing, Networking, Storageand Analysis, Dallas, TX, USA, 2018, pp. 386-400, doi: 10.1109/SC.2018.00033.

作者|杜云飞

END

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

投稿及合作请联系邮箱:lingyunshike@163.com

转载地址:https://lingyun.blog.csdn.net/article/details/117050555 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:为什么程序员都不写文档?
下一篇:Python 之父立 Flag:明年要把 Python 速度提高 2 倍!

发表评论

最新留言

很好
[***.229.124.182]2024年04月10日 16时34分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章