[发明专利]OpenCL运行时系统框架的设计方法及装置有效
| 申请号: | 201410065503.7 | 申请日: | 2014-02-25 |
| 公开(公告)号: | CN104866295B | 公开(公告)日: | 2018-03-06 |
| 发明(设计)人: | 刘颖;崔慧敏;冯晓兵 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | opencl 运行 系统 框架 设计 方法 装置 | ||
技术领域
本发明涉及信息技术领域,特别涉及一种OpenCL运行时系统框架的设计方法及装置。
背景技术
随着异构硬件系统逐渐成为主流,按照通用的编程方法在各个不同异构平台上进行编程逐渐变得越来越重要。其中,异构硬件系统主要为CPU(central processing unit,中央处理器)+GPU(Graphic Processing Unit,图像处理器)的异构硬件系统。具体地,在异构系统中,通过OpenCL(Open Computing Language,开放运算语言)并行编程框架,编写可以在对应的平台上执行的程序。
目前,在OpenCL运行时系统中,通过首先由OpenCL kernel(操作系统内核)编译器产生IR(Intermediate Representation,中间表示),然后在运行时,IR产生不同产品上的可执行代码,从而实现对跨平台的支持。例如,AMD的OpenCLkernel编译器产生的CAL(Compute Abstraction Layer,计算抽象层)IR可以产生AMD不同产品上的可执行代码;Intel的OpenCL kernel编译器产生的LLVM(Low Level Virtual Machine,低级别虚拟机)IR可以产生Intel不同产品上的可执行代码;NVIDIA的OpenCL kernel编译器产生的PTX(Parallel Thread Execution,并行线程执行)可以产生NVIDIA不同产品上的可执行代码。
然而,目前通过IR产生不同产品上的可执行代码时,由于不同公司的OpenCL系统框架不同,因此按照某一公司的OpenCL kernel编译器产生的IR,仅可以支持该公司的异构平台,从而导致同一优化在不同平台上的实施及新平台的引入均需重新开发,进而导致异构系统的平台开发复杂度较高。
发明内容
本发明实施例提供一种OpenCL运行时系统框架的设计方法及装置,可以降低异构系统的平台开发复杂度。
本发明实施例采用的技术方案为:
第一方面,本发明实施例提供一种OpenCL运行时系统框架的设计方法,包括:
将OpenCL运行时系统框架划分为功能层、优化层及平台层,所述平台层包括平台层中间表示IR、平台层实现框架及至少一个平台实现;
向所述功能层及所述优化层提供所述平台层IR,并向所述至少一个平台实现提供所述平台层实现框架。
结合第一方面,在第一方面的第一种可能的实现方式中,所述平台层IR包括构架管理器manager及加速器manager。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述平台层IR包括所述平台层IR的方法及所述平台层IR的描述,所述平台层IR的方法包括强制平台层IR或者建议平台层IR。
结合第一方面或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述向所述功能层及所述优化层提供所述平台层IR的步骤包括:
向所述功能层提供强制平台层IR;
向所述优化层提供建议平台层IR;
所述向所述优化层提供建议平台层IR的步骤之后,还包括:
为所述建议平台层IR配置对应的优先级。
结合第一方面或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述向所述至少一个平台实现提供所述平台层实现框架的步骤之后,还包括:
生成所述平台层IR。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述生成所述平台层IR的步骤包括:
生成所述平台层IR的描述;
判断所述平台层IR的方法所占用的资源是否小于或者等于可用资源;
若所述平台层IR的方法所占用的资源小于或者等于可用资源,则生成所述平台层IR的方法;
若所述平台层IR的方法所占用的资源大于可用资源,则按照所述平台层IR对应的优先级,释放优先级最低的平台层IR所占用的资源。
第二方面,本发明实施例提供一种OpenCL运行时系统框架的设计装置,包括:
划分单元,用于将OpenCL运行时系统框架划分为功能层、优化层及平台层,所述平台层包括平台层中间表示IR、平台层实现框架及至少一个平台实现;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410065503.7/2.html,转载请声明来源钻瓜专利网。





