基于代码融合编译框架的OpenCL编译器设计方法和系统

    公开(公告)号:CN109933327B

    公开(公告)日:2021-01-08

    申请号:CN201910106880.3

    申请日:2019-02-02

    Abstract: 本发明涉及一种基于代码融合编译框架的OpenCL编译器设计方法和系统,包括:基于共享内存提供主机‑内核代码融合编译框架,在编译器的中间表示——AST层上实现不同端代码的融合;WII‑CFG图用来刻画Kernel代码被实例化成众多线程后,线程之间的指令执行行为,亦即分析工作组内平台特征敏感的程序执行行为;主机‑内核代码联合的数据流分析,用来发掘跨越主机端或内核端的数据流关系以及线程之间的数据流关系,以分析两端代码之间的数据相关性;基于前述分析实施针对性的代码优化,并生成汇编代码进而结束编译过程。本发明能面向不同加速设备,针对主机端代码、Kernel代码同时开展分析,充分发掘线程间优化机会,使得OpenCL程序获得良好的性能可移植性。

    数据处理方法和中心节点

    公开(公告)号:CN105335135A

    公开(公告)日:2016-02-17

    申请号:CN201410331030.0

    申请日:2014-07-14

    Inventor: 刘颖 崔慧敏

    CPC classification number: G06F9/44

    Abstract: 本发明实施例提供一种数据处理方法和中心节点,中心节点根据用户提供的采用MapReduce计算框架编写的第一循环函数,生成第二循环函数、启动计算函数和第二拷贝函数,其中,第二循环函数用于循环调用第一拷贝函数将计算节点中需要GPU处理的多个数据记录从计算节点的内存拷贝到GPU的显存中,启动计算函数中的Map计算函数用于指示GPU对GPU负责处理的数据记录进行处理,第二拷贝函数用于将GPU对多个数据记录的计算结果从GPU的显存中拷贝至计算节点的内存中,从而实现将适用于在CPU中运行的代码自动生成适用于在GPU中运行的代码,使Hadoop编程框架适用于在混合集群系统进行数据处理。

    为内存控制器分配硬件加速指令的方法和装置

    公开(公告)号:CN105988952A

    公开(公告)日:2016-10-05

    申请号:CN201510092224.4

    申请日:2015-02-28

    Abstract: 本发明实施例提供一种为内存控制器分配硬件加速指令的方法和装置。该方法包括:按照多个硬件加速指令之间的依赖关系将多个硬件加速指令划分为不同的指令集合;按照将硬件加速指令之间无依赖关系的不同指令集合分配给不同的内存控制器的原则,获取各指令集合与计算机系统中的内存控制器的第一映射关系;根据第一内存控制器集合中的各内存控制器的负载信息调整第一映射关系,以获得各指令集合与计算机系统的内存控制器的第二映射关系;按照第二映射关系将各指令集合中的硬件加速指令分配给第二内存控制器集合中的内存控制器。实现由计算机系统中的多个内存控制器执行硬件加速指令时,各个内存控制器的负载均衡。

    面向密度泛函计算的集群任务调度方法与装置

    公开(公告)号:CN119512711A

    公开(公告)日:2025-02-25

    申请号:CN202411575350.0

    申请日:2024-11-06

    Abstract: 本发明提出一种面向密度泛函计算的集群任务调度方法,包括:预估密度泛函计算的每个集群任务的执行时间,基于该执行时间将该集群任务划分为大型任务和小型任务;将任务特征允许分解的大型任务分解为多个小型任务;任务运行时,将所有该小型任务打包为多个任务包,并以先大型任务后任务包的顺序,进行任务分配及运行;其中,该任务包满足所有执行节点的任务进程的总执行时间都处于一个渐进减小的时间范围。本发明的集群任务调度方法可以良好地应对背景技术所述的批量任务特点,具有基于任务负载评估、分解和重排序的负载均衡调度、变长任务组打包、错误容忍机制、分层扩展的大规模可扩展性和较高的并行效率。

    一种线程间冗余删除的异构编译优化方法

    公开(公告)号:CN109901840B

    公开(公告)日:2020-10-27

    申请号:CN201910114572.5

    申请日:2019-02-14

    Abstract: 本发明通过自动选择优化策略以及分维度进行线程间冗余删除的收益代价分析,能自动根据代码是否含有同步操作和硬件平台的特点,针对性地选择一种优化策略,通过对Kernel代码的编译分析,得出合适的合并维度和合并因子,利于提高Kernel代码的运行性能。采用本发明方法能面向多种异构平台,进行自动分析和变换,得以优化设备端代码的线程间冗余和同步开销,提高设备端代码(即OpenCL的Kernel代码)的性能。

    数据处理方法和中心节点

    公开(公告)号:CN105335135B

    公开(公告)日:2019-01-08

    申请号:CN201410331030.0

    申请日:2014-07-14

    Inventor: 刘颖 崔慧敏

    Abstract: 本发明实施例提供一种数据处理方法和中心节点,中心节点根据用户提供的采用MapReduce计算框架编写的第一循环函数,生成第二循环函数、启动计算函数和第二拷贝函数,其中,第二循环函数用于循环调用第一拷贝函数将计算节点中需要GPU处理的多个数据记录从计算节点的内存拷贝到GPU的显存中,启动计算函数中的Map计算函数用于指示GPU对GPU负责处理的数据记录进行处理,第二拷贝函数用于将GPU对多个数据记录的计算结果从GPU的显存中拷贝至计算节点的内存中,从而实现将适用于在CPU中运行的代码自动生成适用于在GPU中运行的代码,使Hadoop编程框架适用于在混合集群系统进行数据处理。

    OpenCL程序编译方法和编译器

    公开(公告)号:CN104424009B

    公开(公告)日:2017-10-17

    申请号:CN201310404125.6

    申请日:2013-09-06

    Inventor: 刘颖

    CPC classification number: G06F8/41

    Abstract: 本申请实施例提供了一种开放运算语言OpenCL程序编译方法和编译器,所述方法包括:获取OpenCL程序的源程序文件,并确定所述源程序文件中定义的操作数据的第一数据传输模式;计算所述操作数据分别在所述第一数据传输模式和第二数据传输模式下的执行消耗时间,所述第二数据传输模式与所述第一数据传输模式不同,所述执行消耗时间包括所述操作数据的数据传输时间和设备程序执行时间;选择所述执行消耗时间较小的数据传输模式作为所述源程序文件编译时所述操作数据的编译数据传输模式;按照所述编译数据传输模式生成编译执行代码文件。本申请实施例有效保证了程序执行效率。

    异构系统程序启动方法和装置

    公开(公告)号:CN104239080A

    公开(公告)日:2014-12-24

    申请号:CN201310239648.X

    申请日:2013-06-17

    Inventor: 刘颖

    Abstract: 本发明实施例提供一种异构系统程序启动方法和装置,该方法包括:在通过编译器编译开放计算语言程序核心部分时,确定核心部分的输入参数是否被修改;保存各输入参数是否被修改的结果;通过运行时系统启动核心部分时,根据所述输入参数是否被修改的结果,对被修改的输入参数执行复制操作。本发明实施例提供的异构系统程序启动方法和装置,避免运行时系统对核心部分输入参数的冗余复制操作,降低OpenCL运行时系统的开销,提高OpenCL程序执行效率。

Patent Agency Ranking