发明名称 一种代码生成方法、编译器、调度方法、装置及调度系统
摘要 本发明实施例公开了一种代码生成方法、编译器、调度方法、装置及调度系统。本发明实施例生成的代码是应用于异构系统的可执行代码,异构系统包括加速处理器和处理器。本发明实施例代码生成方法包括:编译器获取加速处理器资源的信息以及处理器资源的信息以生成可运行平台列表;编译器从第一用户代码中识别出可加速代码;编译器在可加速代码前嵌入钩子函数与异常处理函数以形成第二用户代码;编译器对第二用户代码进行编译得到可执行代码。本发明实施例生成的可执行代码在执行的时候可以自动实现处理器的合理调度。
申请公布号 CN104423994A 申请公布日期 2015.03.18
申请号 CN201310395216.8 申请日期 2013.09.03
申请人 华为技术有限公司 发明人 颜友亮;郑荣福
分类号 G06F9/445(2006.01)I;G06F9/45(2006.01)I;G06F9/50(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 深圳市深佳知识产权代理事务所(普通合伙) 44285 代理人 王仲凯
主权项 一种代码生成方法,其特征在于,应用于调度系统,所述调度系统中包括异构系统、编译器,所述代码为可执行代码,所述可执行代码应用于异构系统,所述异构系统包括加速处理器和中央处理器,所述方法包括:所述编译器获取所述加速处理器资源的信息以及所述中央处理器资源的信息以生成可运行平台列表,并根据所述加速处理器资源的信息从第一用户代码中识别出可加速代码,所述可运行平台列表中包含所有加速处理器及中央处理器;所述编译器在所述可加速代码前嵌入钩子函数与异常处理函数以形成第二用户代码;所述编译器对所述第二用户代码进行编译得到可执行代码,其中,所述可执行代码中包含将所述钩子函数与所述异常处理函数编译得到的可执行用户代码,以及将所述可加速代码编译得到的第一可加速分支代码及第二可加速分支代码,所述第一可加速分支代码用于在所述可运行平台列表中的加速处理器上执行,所述第二可加速分支代码用于在所述可运行平台列表中的中央处理器上执行,所述嵌入钩子函数与异常处理函数的目的是:使得在所述可执行代码被执行的过程中,执行到所述钩子函数时,利用所述异常处理函数中的条件控制代码为所述第一可加速分支代码及所述第二可加速分支代码选择目标处理器。
地址 518129 广东省深圳市龙岗区坂田华为总部办公楼