[发明专利]众核异构架构下的多类型目标代码的透明加载方法有效
申请号: | 201910904063.2 | 申请日: | 2019-09-24 |
公开(公告)号: | CN112631662B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 黄高阳;王星焱;林海南;郑岩;刘松;邹通 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 众核异 构架 类型 目标 代码 透明 加载 方法 | ||
本发明公开一种众核异构架构下的多类型目标代码的透明加载方法,用户执行execve系统调用进入内核打开目标代码文件,读入目标文件头部,寻找标代码格式的处理函数;检查目标代码ELF头部信息正确性和Machine字段信息;解析环境变量;填写程序参数、环境变量必要信息到用户栈;加载目标代码的程序头表;根据数据段表信息,将程序段、数据段拷贝到物理空间中;初始化,对该数据结构中的元素进行赋值;根据配置信息,配置运算核中的配置寄存器;启动运算核心;检查程序类型;加载操作系统中驻留服务程序,修改程序的执行入口为服务程序的入口;进入新的程序入口执行。本发明实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。
技术领域
本发明涉及一种众核异构架构下的多类型目标代码的透明加载方法,属于操作系统技术领域。
背景技术
在Linux操作系统中,用户程序目标代码的执行由操作系统内核负责。现有的众核处理器平台采用异构体系结构,其上运行的应用程序也不可避免的被“异构”化,分为“纯主核”目标码、“纯从核”目标码、“主从混合”目标码三类。另外,“纯主核”目标码从编译链接角度区分又分为静态链接目标码和动态链接目标码和动态库,操作系统内核需要针对上述多种目标代码程序分别区分处理,做到对用户透明。
目前在国际上CPU+GPU(Graphics Processing Unit,图形处理器)的异构架构下,用户课题的加载也是透明加载的,但其前提是用户课题不能使用通用的c编程接口,而是要采用统一计算设备架构(Compute Unified Device Architecture,cuda)特定的编程接口(RunTime API和driver API)操作GPU的设备。具体的流程如下:
1、编译流程
1)首先用设备编译器预处理,如NVIDIA Cuda compiler driver(nvcc),并将相关cuda代码(主要是核函数)编译为放置在fatbinary中cuda二进制(cubin)和并行程序执行(Parallel Thread Execution,PTX)中间代码,并将cuda特定的c++扩展转换为标准c++构造合成嵌入fatbinary;
2)再在主机端编译器预处理;
3)最后主机编译器将fatbinary嵌入到主机的目标代码;
2、加载流程
gpu目标代码按照正常的c/c++可执行代码加载,因为用户在源代码中已经显示的使用了cuda的API进行编程,因而用户可执行程序是直接通过cuda相关的API对设备进行操作的。
CPU+GPU的架构对比国产众核的架构在编程模型上是完全不一样的,CPU+GPU的架构将设备的操作以API接口的方式封装好,直接让用户操作控制在GPU上的执行流和数据流,操作系统是不直接参与操作设备的。而国产众核的架构在编程模型上还是继承了传统的多线程的编程模型,用户不直接操作众核设备,而是通过thread库直接创建众核上运行的线程,因此对众核设备的控制以及众核上运行线程的控制都需要操作系统的干预。
当前国产众核架构如太湖之光,其使用的流程为在用户层增加了一个加载器的用户可执行程序,该加载器为“纯主核”的应用程序,也是操作系统当前支持的唯一目标代码。对于“异构”的应用程序,则通过该加载器解析并分配到芯片上的“异构”从核上执行。操作系统并没有参与“异构”程序的解析加载的动作。
发明内容
本发明的目的是提供一种众核异构架构下的多类型目标代码的透明加载方法,该众核异构架构下的多类型目标代码的透明加载方法实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。
为达到上述目的,本发明采用的技术方案是:一种众核异构架构下的多类型目标代码的透明加载方法,包括以下步骤,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910904063.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于调试日志的并行程序错误定位方法
- 下一篇:零件的清洗方法