主从核异构架构AI芯片核函数加载系统技术方案

技术编号:34681423 阅读:22 留言:0更新日期:2022-08-27 16:11
本发明专利技术的主从核异构架构AI芯片核函数加载系统,主从核异构架构包括主机端,设备端,所述设备端包括设备端主核、设备端从核,AI芯片核函数加载系统包括如下模块:运行于主机端的LLVM(Low Level Virtual Machine)编译器、运行时库、AI芯片驱动,运行于设备端主核的设备端主核操作系统,运行于设备端从核的设备端从核守护进程。本发明专利技术的主从核异构架构AI芯片核函数加载系统,LLVM编译器运行时对核函数模块嵌入了设备端主核、设备端从核的相关信息;运行时库中对设备端主核、设备端从核的相关信息,通过AI芯片驱动传送给设备端主核,设备端主核解析核函数信息并向设备端从核传送核函数及启动标识,解决了主从异构架构AI芯片的核函数加载问题。函数加载问题。函数加载问题。

【技术实现步骤摘要】
主从核异构架构AI芯片核函数加载系统


[0001]本专利技术涉及一种并行计算架构,具体涉及一种适用于主从核异构架构AI芯片的核函数加载系统。

技术介绍

[0002]现有的异构系统通常由通用CPU加GPU构成,采用通用并行计算架构。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。开发人员可以使用C、C++和Fortran语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA并行架构下,核函数由主机端负责打包,并且通过PCIE或者Nvlink提交到GPU上,交由GPU进行计算。
[0003]随着国产芯片的研发,产生了新的加速卡,如图1所示,为太初(无锡)电子科技有限公司自研的,国产独立自主的AI芯片,具有主核、从核,其中,主核是用于控制的核心,数量少,功能较为复杂,负责AI芯片的DMA处理、内存管理以及核函数加载等功能;从核是用于计算的核心,数量多,每个核心支持的功能较为简单,聚焦于计算能力。
[0004]太初AI芯片采用类似CUDA的SDAA并行架构,包括:核函数加载启动系统、核函数模块、核函数、主机端、设备端、PCIE总线(PCI

Express),其中:
[0005]核函数加载启动系统是并行框架的一部分,用来完成核函数(核函数模块)从主机端到设备端计算核心的处理流程;
[0006]核函数模块是一系列核函数及核函数依赖函数形成的库文件;
[0007]核函数是需要从主机端提交到设备端计算核心进行计算的函数,一般具有适合并行且耗时长的特点;
[0008]主机端可以是x86架构服务器或者其他国产自主架构服务器,在太初AI芯片并行框架下负责通用计算的部分;
[0009]设备端是太初公司自研的AI芯片,通过PCIE总线和主机端连接,在太初AI芯片并行框架下的负责AI计算的加速部件;
[0010]PCI

Express是一种高速串行计算机扩展总线标准,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI

X和AGP总线标准。
[0011]由于GPU与具有主从异构架构的国产AI芯片结构不同,现有的CUDA并行架构方案只有从主机端到设备端的处理方案,不适于具有主从异构架构的国产AI芯片。
[0012]具有主从异构架构的芯片,例如太初AI芯片,需要从主机端到设备端主核再到设备端从核的多阶段流程,因此需要设计一个适合于主从异构架构的核函数加载系统。

技术实现思路

[0013]本专利技术提供一种针对于主从核异构架构AI芯片的核函数加载系统,解决了主从异构架构AI芯片的核函数加载问题,可以被部署到具有主从核的太初国产AI芯片上。
[0014]本专利技术的主从核异构架构AI芯片核函数加载系统,主从核异构架构包括主机端,
设备端,所述设备端包括设备端主核、设备端从核,AI芯片核函数加载系统包括如下模块:运行于主机端的LLVM(Low Level Virtual Machine)编译器、运行时库、AI芯片驱动,运行于设备端主核的设备端主核操作系统,运行于设备端从核的设备端从核守护进程;其中,
[0015]所述LLVM编译器将核函数及其依赖的函数编译、打包成系统可识别的核函数模块;所述核函数模块包含流的编号、使用的核组数量等信息;
[0016]所述运行时库用于提供给用户使用的核函数定义接口,使用驱动定义的核函数操作指令传输核函数模块;
[0017]所述AI芯片驱动使用PCIE总线提供的DMA传输核函数模块、核函数的参数,以及启动核函数相关的命令到设备端主核;
[0018]所述设备端主核操作系统加载核函数模块,准备核函数运行数据,向设备端从核守护进程传送核函数启动标识;
[0019]所述设备端从核守护进程依据核函数启动标识运行核函数,核函数执行完毕,向设备端主核操作系统返回控制权。
[0020]优选的,所述运行时库提供给用户使用的核函数定义接口包括:核函数模块控制相关接口、启动相关接口、注册相关接口;所述核函数模块控制相关接口包括模块加载、卸载,根据核函数名和模块名获得核函数句柄等接口;所述启动相接口对参数个数设定,并提供核函数参数、核函数启动等接口;所述注册相关接口用于模块注册,核函数注册;
[0021]其中,启动相关接口和核函数模块控制相关接口依据驱动命令和驱动交互,让驱动代理完成和设备端的交互,该交互包括:核函数模块的传输、核函数参数的传输、核函数启动命令的提交等;注册相关接口用于修改运行时库内置的数据结构,存储核函数相关的信息;
[0022]优选的,所述AI芯片驱动向设备端发送核函数模块,是通过PCIE的bar空间实现,这是一个给设备端主核的命令。
[0023]本专利技术的主从核异构架构AI芯片核函数加载系统,LLVM编译器运行时对核函数模块嵌入了设备端主核、设备端从核的相关信息;运行时库中对设备端主核、设备端从核的相关信息,通过AI芯片驱动传送给设备端主核,设备端主核解析核函数信息并向设备端从核传送核函数及启动标识,解决了主从异构架构AI芯片的核函数加载问题。
附图说明
[0024]图1为主从核异构架构AI芯片的结构示意图
[0025]图2为本专利技术的主从核异构架构AI芯片核函数加载系统示意图
具体实施方式
[0026]为清楚描述本专利技术,现结合附图进一步说明。
[0027]如图1、图2所示,本专利技术的主从核异构架构AI芯片核函数加载系统,主从核异构架构包括主机端,设备端,所述设备端包括设备端主核、设备端从核。
[0028]如图2所示,AI芯片核函数加载系统包括如下模块:运行于主机端的LLVM(Low Level Virtual Machine)编译器、运行时库、AI芯片驱动,运行于设备端主核的设备端主核操作系统,运行于设备端从核的设备端从核守护进程。
[0029]在太初AI芯片的异构架构的编程模型中,具有一些标准C和C++语言规范中不具有的编程模型,核函数处理流程中的LLVM需要提供对应的中间层,将这部分自定义的规范进行解析,这部分规范包括了流的编号,使用的核组数量等信息。
[0030]AI芯片核函数加载系统中,LLVM编译器将核函数及其依赖的函数编译、打包成系统可识别的核函数模块;所述核函数模块包含流的编号、使用的核组数量等信息;
[0031]运行时库用于提供给用户使用的核函数定义接口,使用驱动定义的核函数操作指令传输核函数模块;
[0032]运行时库负责提供AI芯片的软件运行时环境,提供给用户需要的编程接口。运行时库具有三大功能相关接口:
[0033]1.核函数模块控制相关的接口:模块加载、卸载,从根据核函数名和模块名获得核函数句柄等接口。
[0034]2.启动相关的接口:参数个数设定、提供一个核函数参数、核函数启动等接口。
[0035]3.注册相关的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种主从核异构架构AI芯片核函数加载系统,其特征在于,主从核异构架构包括主机端,设备端,所述设备端包括设备端主核、设备端从核,AI芯片核函数加载系统包括如下模块:运行于主机端的LLVM(Low Level Virtual Machine)编译器、运行时库、AI芯片驱动,运行于设备端主核的设备端主核操作系统,运行于设备端从核的设备端从核守护进程;其中,所述LLVM编译器将核函数及其依赖的函数编译、打包成系统可识别的核函数模块;所述核函数模块包含流的编号、使用的核组数量等信息;所述运行时库用于提供给用户使用的核函数定义接口,使用驱动定义的核函数操作指令传输核函数模块;所述AI芯片驱动使用PCIE总线提供的DMA传输核函数模块、核函数的参数,以及启动核函数相关的命令到设备端主核;所述设备端主核操作系统加载核函数模块,准备核函数运行数据,向设备端从核守护进程传送核函数启动标识;所述设备端从核守护进程依据核函数启动标识运行核函数,...

【专利技术属性】
技术研发人员:李宇轩余洪坤冯健德冯文东陈海波孙祥栋
申请(专利权)人:太初无锡电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1