一种提升Halide语言在多核系统执行效率的线程模型实现方法技术方案

技术编号:20424944 阅读:57 留言:0更新日期:2019-02-23 08:25
本发明专利技术公开了一种提升Halide语言在多核系统执行效率的线程模型Sthread实现方法,每个线程在内核中拥有独立的内存管理结构,从而避免线程间因共享地址空间导致的内存管理结构的竞争;与此同时,Sthread保持原有线程模型支持的共享变量语义,在线程之间共享栈数据、堆数据和全局数据。

【技术实现步骤摘要】
一种提升Halide语言在多核系统执行效率的线程模型实现方法
本专利技术涉及图像处理语言与多核任务并行
,尤其涉及一种提升Halide语言在多核系统执行效率的线程模型实现方法。
技术介绍
Halide是一种面向图像处理的领域专用语言,它已被证明可以有效地用于编写高性能图像处理代码,广泛地应用于数据中心和移动设备上。Halide在语言层面上解耦了算法的定义(算法)和计算的组织(调度),使得程序员可以尝试多种策略以发现高性能的调度方案。Halide将图像处理操作表示为定义在多维无限整数域上的纯函数,每个函数是像素坐标到函数值的映射。图像处理管线(pipeline)则表达为由上述纯函数组成的有向无环图,其中每个纯函数由程序员指定具体的计算组织策略,包括求值顺序、并发模式、内存分配与中间数据放置等。在算法定义和计算组织都明确后,Halide编译器会将二者综合为目标硬件架构上的具体实现代码。对于多核CPU平台,Halide使用非常简单的并行机制来支持纯函数循环求值的并行迭代。这种机制导致生成的多核CPU架构的代码往往由于数据竞争或者频繁的最外层数据访问的缓存失效导致并发执行效率低。图1展本文档来自技高网...

【技术保护点】
1.一种提升Halide语言在多核系统执行效率的线程模型Sthread实现方法,其特征在于,包括:建立数据共享机制:在main函数运行之前,创建共享匿名映射来实现多线程间堆数据共享,同时,通过创建共享匿名映射并使用2copy‑2map方法、栈迁移方法对应地实现全局数据共享、栈数据共享;在Linux下,调用函数clone来创建Sthread子线程,使得Sthread子线程能够按照所建立的数据共享机制实现子线程与其父线程之间各种数据的共享;在Halide运行时,使用所创建的Sthread子线程替换原有的Pthread重新实现Halide运行时系统中的halide_spawn_thread接口。

【技术特征摘要】
1.一种提升Halide语言在多核系统执行效率的线程模型Sthread实现方法,其特征在于,包括:建立数据共享机制:在main函数运行之前,创建共享匿名映射来实现多线程间堆数据共享,同时,通过创建共享匿名映射并使用2copy-2map方法、栈迁移方法对应地实现全局数据共享、栈数据共享;在Linux下,调用函数clone来创建Sthread子线程,使得Sthread子线程能够按照所建立的数据共享机制实现子线程与其父线程之间各种数据的共享;在Halide运行时,使用所创建的Sthread子线程替换原有的Pthread重新实现Halide运行时系统中的halide_spawn_thread接口。2.根据权利要求1所述的一种提升Halide语言在多核系统执行效率的线程模型实现方法,其特征在于,所述创建共享匿名映射来实现多线程间堆数据共享包括:调用函数mmap(addr,length,prot,flags,fd,offset)创建共享匿名映射,flags参数置为MAP_ANON|MAP_SHARED,表示创建的地址空间映射区间为匿名映射和共享映射,fd与offset均置为0,addr和length参数分别表示地址空间映射区间的起始地址和长度,prot参数用于设置对所地址空间映射区间的访问模式;共享匿名映射使得线程在函数clone()后不受写时复制机制的影响,从而实现多线程间堆数据共享。3.根据权利要求1所述的一种提升Halide语言在多核系统执行效率的线程模型实现方法,其特征在于,所述全局数据共享是指对可读写数据区的共享,所使用的共享匿名映射为固定共享匿名映射,全局数据共享通过使用2copy-2map方法实现,即先分配临时空间存储可读写数据区的副本,然后使用预先创建的固定共享匿名映射覆盖原有可读写数据区的内存映射,再将临时空间内的数据拷贝回原有地址空间。4.根据权利要求1所述的一种提升Halide语言在多核系统执行效率的线程模型实现方法,其特征在于,所述栈数据共享是指对主线程栈数据的共享,其通过栈迁移方法实现,即在开始执行任务之前先将栈数据拷贝到预先创建的共享匿名映射,然后将当前硬件栈帧寄存器的值保存起来,再使之指向共享映射中的栈顶栈帧;待主线程的任务执行完成,将之前保存的栈帧寄存器的值恢复到栈帧寄...

【专利技术属性】
技术研发人员:张昱张宇翔
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1