[发明专利]一种提升Halide语言在多核系统执行效率的线程模型实现方法有效

专利信息
申请号: 201811145982.8 申请日: 2018-09-29
公开(公告)号: CN109376022B 公开(公告)日: 2021-12-14
发明(设计)人: 张昱;张宇翔 申请(专利权)人: 中国科学技术大学
主分类号: G06F9/54 分类号: G06F9/54;G06F9/52
代理公司: 北京凯特来知识产权代理有限公司 11260 代理人: 郑立明;郑哲
地址: 230026 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 提升 halide 语言 多核 系统 执行 效率 线程 模型 实现 方法
【说明书】:

发明公开了一种提升Halide语言在多核系统执行效率的线程模型Sthread实现方法,每个线程在内核中拥有独立的内存管理结构,从而避免线程间因共享地址空间导致的内存管理结构的竞争;与此同时,Sthread保持原有线程模型支持的共享变量语义,在线程之间共享栈数据、堆数据和全局数据。

技术领域

本发明涉及图像处理语言与多核任务并行技术领域,尤其涉及一种提升Halide语言在多核系统执行效率的线程模型实现方法。

背景技术

Halide是一种面向图像处理的领域专用语言,它已被证明可以有效地用于编写高性能图像处理代码,广泛地应用于数据中心和移动设备上。Halide在语言层面上解耦了算法的定义(算法)和计算的组织(调度),使得程序员可以尝试多种策略以发现高性能的调度方案。

Halide将图像处理操作表示为定义在多维无限整数域上的纯函数,每个函数是像素坐标到函数值的映射。图像处理管线(pipeline)则表达为由上述纯函数组成的有向无环图,其中每个纯函数由程序员指定具体的计算组织策略,包括求值顺序、并发模式、内存分配与中间数据放置等。在算法定义和计算组织都明确后,Halide编译器会将二者综合为目标硬件架构上的具体实现代码。

对于多核CPU平台,Halide使用非常简单的并行机制来支持纯函数循环求值的并行迭代。这种机制导致生成的多核CPU架构的代码往往由于数据竞争或者频繁的最外层数据访问的缓存失效导致并发执行效率低。图1展示了Halide基于Pthread线程池的循环并行执行机制。工作线程通过调用运行时接口halide_do_par_for(后简称par_for)将并行循环体执行的任务、循环的剩余和最大迭代次数封装为Work对象提交到全局工作栈(GlobalWork Container)中,即图1中的①;另一方面,空闲工作线程竞争获取全局工作栈顶Work对象的剩余迭代并执行,即图1中的②。

图1所示机制是Halide发掘任务级并行的唯一机制。理想情况下,任务加速比应随着使用的CPU物理核数量或线程数量线性增长,但实际的测试结果显示:Halide在多核计算机系统下存在严重的并发扩展性问题。图2中上方四条曲线表现出4个测试程序在加速比随CPU核数的变化上有相同的趋势:随着CPU核数从8开始增长,测试程序的加速比先以线性模式缓慢增长;当CPU核数超过某个具体数值时,加速比不再增长甚至回落。对于另外2个测试程序interpolate和blur,直观地看,CPU核数对加速比几乎没有影响。

当Halide基准测试程序有充足的并发任务量时,使用更多CPU核去执行该程序时,加速比却没有得到持续提升。经深入分析发现,图像处理中的某些典型计算模式(如金字塔卷积)会消耗大量动态内存,这会引起频繁的内核地址空间管理操作。如表1所示,采用金字塔卷积的三个测试程序(interpolate、lens_blur和local_laplacian)的动态内存占用峰值超过1GB,而相应的缺页中断开销明显大于其他三个测试程序。缺页中断开销主要来自于内核中多个线程共享内存管理结构上读写锁的获取。

表1Halide测试程序动态内存占用与内核内存操作开销占比

发明内容

本发明的目的是提供一种提升Halide语言在多核系统执行效率的线程模型Sthread(Scalable thread,可伸缩线程)实现方法,极大地提升了Halide在多核计算机系统上的并发执行效率。

本发明的目的是通过以下技术方案实现的:

一种提升Halide语言在多核系统执行效率的线程模型Sthread实现方法,包括:

建立数据共享机制:在main函数运行之前,创建共享匿名映射来实现多线程间堆数据共享,同时,通过创建共享匿名映射并使用2copy-2map方法、栈迁移方法对应地实现全局数据共享、栈数据共享;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201811145982.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top