【技术实现步骤摘要】
【国外来华专利技术】一种主CPU与NPU的数据交互方法及计算设备
本申请涉及人工智能(artificialintelligence,AI)
,尤其涉及一种主CPU与NPU的数据交互方法及计算设备。
技术介绍
随着AI的广泛应用,深度学习已成为当前AI研究和应用的主流方式,面对海量数据的并行运算,AI对于算力的要求不断提升,因此对硬件的运算速度及功耗提出了更高的要求。除了通用的中央处理器(centralprocessingunit,CPU)外,作为硬件加速的图形处理器(graphicsprocessingunit,GPU)、神经网络处理器(neuralnetworksprocessunit,NPU)、现场可编程逻辑门阵列(fieldprogrammablegatearray,FPGA)等一些芯片处理器也在深度学习的不同应用中发挥着各自的优势。其中,NPU尤其擅长处理视频、图像类的海量多媒体数据,在实际应用中,NPU需要CPU的协同处理才能完成特定的任务,也就是NPU作为协处理器挂载到主CPU(HostCPU),由主CPU分配任务(即发送任务相关的命令),NPU再执行相应任务,并向主CPU返回执行的处理结果。目前,主CPU与NPU之间的数据交互流程是:先将AI模型加载至NPU,如图1所示,先对主CPU上的应用程序(application,APP)进行初始化,并调用主CPU上AI服务(AIService)的服务接口,将AIService能够识别的AI模型文件,发给AIService,AIService对该AI模型进行解析,并将解 ...
【技术保护点】
1.一种计算设备,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AI Service)和NPU驱动,所述NPU包括NPU控制器、运算逻辑单元和N个寄存器,N≥1;/n所述主CPU,用于通过所述AI Service和所述NPU驱动将所述目标APP对应的AI模型加载至所述NPU;/n所述NPU,用于通过所述NPU控制器为所述AI模型分配第一寄存器,并将所述第一寄存器的物理地址向所述主CPU发送,所述第一寄存器属于所述N个寄存器;/n所述主CPU,还用于接收所述NPU发送的所述物理地址,并将所述物理地址映射为所述目标APP上第一虚拟内存的第一虚拟地址;/n所述主CPU,还用于根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存;/n所述NPU,还用于当所述主CPU根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存,通过所述NPU控制器控制所述运算逻辑单元执行所述AI模型;/n所述NPU,还用于通过所述NPU控制器将所述AI模型的执行结果写入所述第一寄存器;/n所述主CPU,还用于根据所述第一虚拟地址,通过所述目标APP轮询所述 ...
【技术特征摘要】
【国外来华专利技术】1.一种计算设备,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AIService)和NPU驱动,所述NPU包括NPU控制器、运算逻辑单元和N个寄存器,N≥1;
所述主CPU,用于通过所述AIService和所述NPU驱动将所述目标APP对应的AI模型加载至所述NPU;
所述NPU,用于通过所述NPU控制器为所述AI模型分配第一寄存器,并将所述第一寄存器的物理地址向所述主CPU发送,所述第一寄存器属于所述N个寄存器;
所述主CPU,还用于接收所述NPU发送的所述物理地址,并将所述物理地址映射为所述目标APP上第一虚拟内存的第一虚拟地址;
所述主CPU,还用于根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存;
所述NPU,还用于当所述主CPU根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存,通过所述NPU控制器控制所述运算逻辑单元执行所述AI模型;
所述NPU,还用于通过所述NPU控制器将所述AI模型的执行结果写入所述第一寄存器;
所述主CPU,还用于根据所述第一虚拟地址,通过所述目标APP轮询所述第一虚拟内存,从所述第一寄存器中读取所述AI模型的执行结果。
2.根据权利要求1所述的设备,其特征在于,所述主CPU,具体用于:
通过所述NPU驱动接收所述NPU控制器发送的所述物理地址,并通过所述NPU驱动将所述物理地址映射到所述AIService的虚拟内存空间,得到所述AIService上第二虚拟内存的第二虚拟地址;
通过所述AIService将所述第二虚拟地址映射到所述目标APP的虚拟内存空间,得到所述目标APP上第一虚拟内存的第一虚拟地址。
3.根据权利要求2所述的设备,其特征在于,所述主CPU,具体还用于:
通过所述目标APP接收所述AIService发送的第二虚拟地址的内存句柄;
通过所述目标APP将所述第二虚拟地址的内存句柄映射为所述目标APP上第一虚拟内存的第一虚拟地址。
4.根据权利要求1所述的设备,其特征在于,所述主CPU,具体用于:
通过所述NPU驱动接收所述NPU控制器发送的所述第一寄存器的物理地址;
通过所述NPU驱动将所述第一寄存器的物理地址直接映射到所述目标APP的虚拟内存空间,得到所述目标APP上第一虚拟内存的第一虚拟地址。
5.根据权利要求1-4中任一项所述的设备,其特征在于,所述NPU,具体用于:
将所述第一寄存器的物理地址向所述主CPU的NPU驱动发送。
6.一种计算设备,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AIService)和NPU驱动,所述NPU包括NPU控制器、运算逻辑单元和N个寄存器,N≥2;
所述主CPU,用于通过所述AIService和所述NPU驱动将所述目标APP对应的AI模型加载至所述NPU;
所述NPU,用于通过所述NPU控制器为所述AI模型分配第一寄存器和第二寄存器,并将所述第一寄存器的第一物理地址和所述第二寄存器的第二物理地址向所述主CPU发送,所述第一寄存器和所述第二寄存器属于所述N个寄存器;
所述主CPU,还用于接收所述NPU发送的所述第一物理地址和所述第二物理地址,并将所述第一物理地址和所述第二物理地址分别映射为所述目标APP上第一虚拟内存的第一虚拟地址和第二虚拟内存的第二虚拟地址;
所述主CPU,还用于根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存;
所述NPU,还用于当所述主CPU根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存,通过所述NPU控制器控制所述运算逻辑单元执行所述AI模型;
所述NPU,还用于通过所述NPU控制器将所述AI模型的执行结果写入所述第二寄存器;
所述主CPU,还用于根据所述第二虚拟地址,通过所述目标APP轮询所述第二虚拟内存,从所述第二寄存器中读取所述AI模型的执行结果。
7.根据权利要求6所述的设备,其特征在于,所述主CPU,具体用于:
通过所述NPU驱动接收所述NPU控制器发送的所述第一物理地址和所述第二物理地址,并通过所述NPU驱动将所述第一物理地址和所述第二物理地址分别映射到所述AIService的虚拟内存空间,得到所述AIService上第三虚拟内存的第三虚拟地址和第四虚拟内存的第四虚拟地址;
通过所述AIService将所述第三虚拟地址和所述第四虚拟地址分别映射到所述目标APP的虚拟内存空间,得到所述目标APP上第一虚拟内存的第一虚拟地址和第二虚拟内存的第二虚拟地址。
8.根据权利要求7所述的设备,其特征在于,所述主CPU,具体还用于:
通过所述目标APP接收所述AIService发送的第三虚拟地址的内存句柄和第四虚拟地址的内存句柄;
通过所述目标APP将所述第三虚拟地址的内存句柄和所述第四虚拟地址的内存句柄分别映射为所述目标APP上第一虚拟内存的第一虚拟地址和第二虚拟内存的第二虚拟地址。
9.根据权利要求6所述的设备,其特征在于,所述主CPU,具体用于:
通过所述NPU驱动接收所述NPU控制器发送的所述第一物理地址和所述第二物理地址;
通过所述NPU驱动将所述第一物理地址和所述第二物理地址分别直接映射到所述目标APP的虚拟内存空间,得到所述目标APP上第一虚拟内存的第一虚拟地址和第二虚拟内存的第二虚拟地址。
10.根据权利要求6-9中任一项所述的设备,其特征在于,所述NPU,具体用于:
将所述第一寄存器的第一物理地址和所述第二寄存器的第二物理地址向所述主CPU的NPU驱动发送。
11.一种计算设备,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AIService)和NPU驱动,所述NPU包括NPU控制器和运算逻辑单元;
所述主CPU,用于通过所述AIService和所述NPU驱动将所述目标APP对应的AI模型加载至所述NPU;
所述主CPU,还用于通过所述NPU驱动为所述AI模型分配第一内存,并将第一内存的地址映射为所述目标APP上第一虚拟内存的第一虚拟地址,所述第一内存为在所述NPU驱动上开辟的内存;
所述主CPU,还用于根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存;
所述主CPU,还用于当所述主CPU根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存,通过所述NPU驱动向所述NPU控制器发送执行命令;
所述NPU,用于通过所述NPU控制器根据所述执行命令控制所述运算逻辑单元执行所述AI模型,并通过所述NPU控制器将所述AI模型的执行结果向所述NPU驱动发送;
所述主CPU,还用于通过所述NPU驱动将所述AI模型的执行结果写入所述第一内存;
所述主CPU,还用于根据所述第一虚拟地址,通过所述目标APP轮询所述第一虚拟内存,从所述第一内存中读取所述AI模型的执行结果。
12.一种计算设备,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AIService)和NPU驱动,所述NPU包括NPU控制器和运算逻辑单元;
所述主CPU,用于通过所述AIService和所述NPU驱动将所述目标APP对应的AI模型加载至所述NPU;
所述主CPU,还用于通过所述NPU驱动为所述AI模型分配第一内存和第二内存,并将第一内存的地址和第二内存的地址分别映射为所述目标APP上第一虚拟内存的第一虚拟地址和第二虚拟内存的第二虚拟地址,所述第一内存和所述第二内存为在所述NPU驱动上开辟的内存;
所述主CPU,还用于根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存;
所述主CPU,还用于当所述主CPU根据所述第一虚拟地址通过所述目标APP写所述第一虚拟内存,通过所述NPU驱动向所述NPU控制器发送执行命令;
所述NPU,用于通过所述NPU控制器根据所述执行命令控制所述运算逻辑单元执行所述AI模型,并通过所述NPU控制器将所述AI模型的执行结果向所述NPU驱动发送;
所述主CPU,还用于通过所述NPU驱动将所述AI模型的执行结果写入所述第二内存;
所述主CPU,还用于根据所述第二虚拟地址,通过所述目标APP轮询所述第二虚拟内存,从所述第二内存中读取所述AI模型的执行结果。
13.一种计算设备,包括主CPU和NPU,其特征在于:
所述主CPU包括AI服务(AIService)和NPU驱动;
所述NPU包括NPU控制器、运算逻辑单元和至少一个寄存器,所述至少一个寄存器中的第一寄存器用于存放加载到所述NPU上的第一AI模型的执行结果;
所述AIService和所述NPU驱动通信连接;
所述NPU驱动和所述NPU控制器通信连接。
14.根据权利要求13所述的设备,其特征在于,所述至少一个寄存器设置在所述NPU控制器上。
15.一种主CPU与NPU的数据交互方法,其特征在于,所述方法应用于计算设备中,所述计算设备包括主CPU和NPU,所述主CPU上运行目标应用程序(APP),所述主CPU包括AI服务(AIService)和NPU驱动,所述NPU包括NPU控制器、运算逻辑单元和N个寄存器,N≥1;所述方法包括:
所述主CPU通过所述AIService和所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。