[发明专利]OpenCL程序编译方法和编译器在审
申请号: | 201310404125.6 | 申请日: | 2013-09-06 |
公开(公告)号: | CN104424009A | 公开(公告)日: | 2015-03-18 |
发明(设计)人: | 刘颖 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | opencl 程序 编译 方法 编译器 | ||
1.一种开放运算语言OpenCL程序编译方法,其特征在于,包括:
获取OpenCL程序的源程序文件,并确定所述源程序文件中定义的操作数据的第一数据传输模式;
计算所述操作数据分别在所述第一数据传输模式和第二数据传输模式下的执行消耗时间,所述第二数据传输模式与所述第一数据传输模式不同,所述执行消耗时间包括所述操作数据的数据传输时间和设备程序执行时间;
选择所述执行消耗时间较小的数据传输模式作为所述源程序文件编译时所述操作数据的编译数据传输模式;
按照所述编译数据传输模式生成编译执行代码文件。
2.根据权利要求1所述的方法,其特征在于,所述计算所述操作数据分别在所述第一数据传输模式和第二数据传输模式下的程序执行消耗时间包括:
验证所述操作数据按照所述第二数据传输模式处理时,所述操作数据是否安全;
当所述操作数据安全时,计算所述操作数据分别在所述第一数据传输模式和所述第二数据传输模式下的程序执行消耗时间。
3.根据权利要求2所述的方法,其特征在于,当所述第一数据传输模式为复制模式,所述第二数据传输模式为映射模式,所述验证所述操作数据按照所述第二数据传输模式处理,所述操作数据是否安全包括:
分析在程序执行过程中,是否存在主机端对所述操作数据的写操作,若否,确定所述操作数据按照所述第二数据传输模式处理时安全;
当所述第一数据模式为映射模式,所述第二数据传输模式为复制模式时,所述验证所述操作数据按照所述第二数据传输模式处理,所述操作数据是否安全包括:
分析在程序执行过程中,是否存在设备端对所述操作数据的写操作,若否,确定所述操作数据按照所述第二数据传输模式处理时安全。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述第一数据传输模式为复制模式时,所述第二数据传输模式为映射模式;或,所述第一数据传输模式为映射模式时,所述第二数据传输模式为复制模式;
所述计算所述操作数据分别在第一数据传输模式和第二数据传输模式下的执行消耗时间包括:
根据所述操作数据的总数据量以及数据传输速率,计算复制模式下所述操作数据的数据传输时间;
根据设备程序执行过程中,对所述操作数据的内存访问总数据量以及访问设备端的内存访问速率,计算所述复制模式下所述操作数据的设备程序执行时间;
将所述复制模式下计算的数据传输时间以及设备程序执行时间之和,作为所述操作数据在所述复制模式下的执行消耗时间;
根据主机端与设备端的映射关系建立以及消除时间,计算映射模式下所述操作数据的数据传输时间;
根据设备程序执行过程中,对所述操作数据的内存访问总数据量以及访问主机端的内存访问速率,计算所述映射模式下所述操作数据的设备程序执行时间;
将所述映射模式下计算的数据传输时间以及设备程序执行之和,作为所述操作数据在所述映射模式下的执行消耗时间。
5.根据权利要求4所述的方法,其特征在于,所述对所述操作数据的内存访问总数据量为根据源程序文件中定义的设备程序的工作项数量以及单位工作项的内存访问数据量计算得到。
6.根据权利要求4所述的方法,其特征在于,所述数据传输速率、所述访问设备端的内存访问速率或者所述访问主机端的内存访问速率是根据当前异构系统执行硬件平台的硬件特征预先确定的。
7.一种编译器,其特征在于,包括:
模式确定模块,用于获取OpenCL程序的源程序文件,并确定所述源程序文件中定义的操作数据的第一数据传输模式;
计算模块,用于计算所述操作数据分别在所述第一数据传输模式和第二数据传输模式下的执行消耗时间,所述第二数据传输模式与所述第一数据传输模式不同,所述执行消耗时间包括所述操作数据的数据传输时间和设备程序执行时间;
模式选择模块,用于选择消耗时间较小的数据传输模式作为所述源程序文件编译时所述操作数据的编译数据传输模式。
编译模块,用于按照所述编译数据传输模式生成编译执行代码文件。
8.根据权利要求7所述的编译器,其特征在于,还包括:
验证模块,用于验证所述操作数据按照第二数据传输模式处理时,所述操作数据是否安全,若是,再触发所述计算模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310404125.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于提供自定义虚拟装置的方法和设备
- 下一篇:一种信息处理的方法及电子设备