松耦合组件式GPU生态迁移适配系统研究

数码
TIME
2023-12-21 10:25
通信世界全媒体
分享

在英伟达GPU芯片进口受限的大环境下,AI-GPU算力芯片及其他算力芯片的国产化替代,是当前我国AI产业发展的必经之路。虽然当前国内各大厂商都推出了各具特色的GPU芯片,但英伟达公司在长期发展过程中构建了除算力芯片外的CUDA(Compute Unified Device Architecture,统一计算架构)软件生态,这也构成了英伟达GPU芯片的核心竞争力。因此,目前主流AI应用均以英伟达CUDA软件生态为基础进行构建,且工业界使用的框架以PyTorch为主、学术界以TensorFlow为主,但随着国产GPU算力的崛起,以华为为代表的Ascend芯片及MindSpore框架也在逐渐占据市场。

笔者通过对上述生态框架以及当前业内测试结果的分析,发现不同的芯片需与底层算子生态及上层应用框架进行绑定,否则很难充分发挥AI芯片的硬件性能。但如果大量AI应用直接采用重构或完全重写的方式进行生态迁移,不仅成本巨大,而且耗时良久,因此迫切需要一种低成本的应用迁转系统,通过系统平台来助力用户的AI应用完成算子生态适配和迁移,并实现国产化替换及其他生态应用的备份。

本文在研究AI应用框架、算子生态的基础上,结合软件工程理论和系统设计理论,设计了一种松耦合组件式的GPU生态迁移适配系统。与当前已有编程语言转换系统相比,本系统扩展了应用边界和转换系统的适配性,充分应用当前的AI GPU场景,支持主流的AI应用框架PyTorch、TensorFlow,生态迁移方面支持英伟达CUDA与华为CANN、AMD ROCM之间互转,可以适配国内70%以上的生态迁移场景。

AI算子生态与迁移转换系统

对于当前的GPU算力芯片、AI应用框架及生态算子库,本文给出简要的介绍和分析,并给出当前行业跨生态、跨编程语言的迁移系统进展情况。

在目前的GPU生态中,CUDA占据了90%以上的应用市场份额。CUDA是英伟达提出适用其GPU的一种通用并行计算平台,相比传统CPU能有效解决更复杂的计算问题。CUDA被广泛应用于科学计算、图像处理、机器学习、AI等领域,在AI领域深度学习的主流框架(如TensorFlow和PyTorch)支持使用CUDA进行加速。

对标英伟达的CUDA,华为推出了CANN——一种针对华为加速卡在AI场景下的异构计算平台。该平台与CUDA定位相似,对上支持PyTorch、TensorFlow、MindSpore等多种AI框架,向下对用户屏蔽华为系列化芯片的硬件差异,通过丰富的软件栈功能满足用户全流程、全场景的需求。

ROCM则是基于开源项目的AMD GPU计算生态,由AMD开发,对标CUDA。ROCM提供了一组驱动程序、开发工具和API的集合,支持从低级内核到最终用户应用程序的GPU编程。与前述平台相似,ROCM支持上游TensorFlow等主流AI框架,向下也屏蔽AMD的硬件。由于其具有开源、跨平台和兼容性强等优势,被广泛应用于大型语言模型、图像识别、自动驾驶等AI场景。

关于生态算子迁移工作,目前行业主要有如下几个方面:在算子映射方面,因为当前主流的生态基于CUDA,所以将CUDA算子映射为ROCM或华为CANN算子就成为普遍做法。算子映射需要对异构GPU的底层算子及异构GPU的架构进行转译,才能保证转换后的算子能够正常工作。

在框架适配方面,以华为GPU为例,为了更高效地使用AI框架,需要将原CUDA下主流TensorFlow、PyTorch框架开发的代码迁移至华为MindSpore框架。

在性能优化方面,需要对转换后的算子进行性能优化。大部分算法在经过算子映射后都存在一定程度的精度损失,为了尽量减少精度损失,需要对映射后的算子进行优化,确保迁移后的算子能够在新的生态系统中高效运行,其包括优化算法、优化数据结构、优化并行性等方面。

以下是目前业界对生态迁移框架适配的一些技术介绍:有的研究者针对目前CUDA转CANN算子的迫切需求,在深入研究PyTorch和Mindspore标准接口和运行机理的基础上,采用一种分层解耦的系统框架设计,实现了PyTorch代码向MindSpore代码的转换;有的文献则给出了在应对复杂AI应用程序时,软件系统的必要设计模块和所需功能要素考虑点,为本文所述的适配体系提供了参考。

综合业内生态现状和业界研究进展,本文提出的松耦合组件式生态迁转系统具有普适性,支持的生态算子、AI框架更加多样,且可按需进行自定义配置和扩展,通过多循环流程的支持可以达到“系统一键迁移直接可用”的状态。

松耦合组件式生态迁转系统

本文提出的松耦合组件式生态迁转系统架构如图1所示。系统分为用户AI应用模块、接入验证模块、解析模块、核心迁移适配组件模块、应用评估模块、二次修正模块和结果模块。其中,用户以TensorFlow、PyTorch或其他如MindSpore等框架编写的AI应用均支持以源码进行接入和转换,转换和迁移适配模块为组件化松耦合设计,可按需扩展,如当前系统可按需配置ROCM转换组件、CANN转换组件以及CUDA转换组件。此外系统充分考虑当前不同生态的巨大差异和迁移适配系统的局限性,按需设计添加了应用评估模块和二次修正模块,用户可以在完成自动化迁移后进行效能评估和二次手动修正,保证了平台迁移适配后应用的可用性和可靠性。

图1 松耦合组件式生态迁转系统架构

用户AI应用

用户已有AI应用,如采用PyTorch、TensorFlow、MindSpore或其他编程语言编写的图像、文本、音频的AI算法,对于用户来说属于已知信息,包括采用编程框架、底层适配算子生态。该部分以源代码形式进行提供,并提供上述应用的元数据信息,如框架类型、版本、生态类型、GPU芯片基本信息以及依赖信息等。

接入验证模块

接入验证模块在接收到用户AI应用程序源代码及其元数据信息后,会进行程序信息分析和代码校验,接入校验内容包括应用程序的完备性、基础信息的完备性、代码框架版本以及其依赖信息的完整性,如若是PyTorch代码将检查版本、目标生态库(CUDA、ROCM或其他),并进行首次的程序语法校验以及框架程序预编译,检查是否支持应用程序的代码、是否满足应用程序的依赖项、应用程序是否可以正常运行等。若编译失败则进行告警和反馈,直至验证通过。

解析模块

解析模块负责解析用户AI应用程序的源代码。该模块将识别应用程序中使用的算子和操作,并生成算子转换和生态适配所需的信息。此外,解析模块还会根据用户提供的源代码、元数据信息进行应用环境分析和校验,并根据用户需求进行平台目标生态校验,比如来源CUDA生态目标迁移转换为CANN生态,框架算子由PyTorch转换为MindSpore,将进行解析和平台自检,若不通过则进行告警和反馈,直至解析调整后通过。

核心迁移适配组件模块

核心迁移适配组件模块是系统的核心模块,根据源应用需求和目标迁转需求,将应用进行算子和框架转换,该模块使用算子转换器和生态适配器等工具来完成转换和适配工作。核心迁移适配模块为插件式设计,当前已有ROCM转换器、CANN转换器、CUDA转换器等,后续将支持其他生态插件适配器。其中,转换模块主要完成AI框架的互迁移和底层算子迁移。在完成内部迁移后会自动进行对应目标的系统测试。若测试不通过则进行告警和反馈,并将迁转结果进行代码层级展示和输出。

应用评估模块

应用评估模块负责评估转换后应用程序的性能和准确性。该模块将使用基准测试和测试数据来评估应用程序的性能,使用模型验证方法评估应用程序的准确性。该模块以转换模块输出为输入,用户按需进行自定义的评估测试并输出结果,评估方式有通用或特定应用的基准测试、自定义测试等。

二次修正模块

由于生态算子、应用框架的巨大差异性,根据系统实测,对于常见AI场景应用(如图像识别、文本情感分析、音频合成TTSR等算法),基于TensorFlow、PyTorch编写的程序在转换成MindSpore等框架时,往往只有70%以上的成功率,因此核心迁移适配组件模块适配后的结果通常需要二次修正。本模块采用远程IDE功能进行迁转后的文件在线编辑和修改,对不支持的目标算子进行修改和替换,对程序语法错误和框架函数进行二次修正,直至目标迁转算法可正常编译及运行。结果模块结果模块负责评估经二次修正后的应用程序的性能和准确性。该模块将采用与应用评估相同的方法,评估应用程序的性能和准确性。生态迁移平台支持在目标迁移环境上(如英伟达GPU集群、华为Ascend集群等)运行,根据运行状态和运行结果进行迁转效果评估,输出生态适配及运行结果。

本系统的核心流程模块需多次循环迭代,如图2所示,自校验解析起,核心迁移适配与二次修正均采用正反循环流的方式进行处理,通过多轮迭代直至目标迁移完成,通过“自动化+人工修正”的方式保证生态迁移过程的完备性和准确性。据笔者实测,一般可在5轮次左右完成大部分AI应用的跨算子生态迁移。

图2 系统核心流程及迭代

面对当前GPU算力芯片百花齐放,而芯片软件生态却远落后硬件的情况,特别是在国外算力芯片“卡脖子”的情况下,本文探究了一种松耦合组件式生态迁转系统,能够辅助用户应用代码完成多种底层GPU算子生态库的自动转换。该系统目前支持CUDA生态迁转CANN生态或ROCM生态。其中,针对CANN生态当前已完成天影视频相关算法的适配。天影是中国联通的一个智能视频云,天影通过该系统已完成15条常用视频算法在华为硬件上的迁移适配,支撑近百路智能摄像头业务。

总而言之,本系统平台的研究可以节省大量的生态迁移工作步骤,使得GPU算力芯片生态不再成为限制AI广泛应用的一大难题。

THE END
免责声明:本文系转载,版权归原作者所有;刊载之目的为传播更多信息,如内容不适请及时通知我们。

相关热点

  新华社北京12月20日电(记者张泉)多机器人协同作业优化技术、人工智能辅助软件自动开发、海水直接制氢技术研究、动力电池快速充电及管理技术……20日发布的《全球工...
业界
  12月19日消息,面向即将到来的2024年,国际学术期刊《Nature》为我们梳理了2024年值得关注的九大科学事件,让我们一起看看都有哪些吧!  事件一:人工智能的进步(AI advanc...
业界

相关推荐

1
3