[发明专利]一种基于向量处理器的在线编译方法无效
申请号: | 200810235436.3 | 申请日: | 2008-12-02 |
公开(公告)号: | CN101414265A | 公开(公告)日: | 2009-04-22 |
发明(设计)人: | 吕琦;李文中;陆桑璐;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 南京苏高专利商标事务所 | 代理人: | 柏尚春 |
地址: | 210093*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于向量处理器的在线编译方法,首先运用Python代码的map、filter、zip和range函数,将问题以list comprehension的表达方式定义为一组数据和一组处理函数;将Python代码编译成code对象,获取函数体的func_code属性,该属性为PyCode对象,通过dis库中的dis函数,对这个属性进行解析,将Python字节码翻译成对应的操作符;获取到操作符之后,对其进行扫描,分别处理if分支结构和循环结构两种过程。本发明只需要利用Python语言描述问题,即可自动的转换成可以在各种SIMD实现上运行的SIMD代码,大大降低SIMD的应用难度。 | ||
搜索关键词: | 一种 基于 向量 处理器 在线 编译 方法 | ||
【主权项】:
1、一种基于向量处理器的在线编译方法,其特征在于包括以下步骤:1)运用Python代码的map、filter、zip和range函数,将问题以list comprehension的表达方式定义为一组数据和一组处理函数;2)将Python代码编译成code对象,进行数据流分析,获取函数体的func_code属性,该属性为PyCode对象,通过dis库中的dis函数,对这个属性进行解析,将Python字节码翻译成对应的操作符;3)获取到操作符之后,对其进行扫描,分别处理以下两种过程:if分支结构以及循环结构:对于循环结构,将循环中对数列元素的单独操作,提炼成针对整个队列的操作,包括:通过map函数将一个操作映射到列表上的对应操作的向量模型;通过zip函数将若干个列表关联在一起进行操作的所对应的向量模型;再根据这些关系,产生相对应的SIMD指令,并给对应的SIMD实现编译,动态产生符合Python要求的动态链接库,由Python动态载入并执行;对于if分支结构,首先计算分支条件,然后计算左分支和右分支,最终根据分支条件的结果,将左右两个分支的结果合并。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200810235436.3/,转载请声明来源钻瓜专利网。
- 上一篇:一种电学双稳态有机薄膜的制备方法
- 下一篇:快速可拆装式虚实两用模拟驾驶系统