[发明专利]一种面向异构平台的复杂指针数据结构自动管理系统有效
申请号: | 202010971038.9 | 申请日: | 2020-09-15 |
公开(公告)号: | CN112083956B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 张伟哲;何慧;王法瑞;方滨兴;郝萌;郭浩男 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F8/41 |
代理公司: | 黑龙江立超同创知识产权代理有限责任公司 23217 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 平台 复杂 指针 数据结构 自动 管理 系统 | ||
一种面向异构平台的复杂指针数据结构自动管理系统,涉及异构编程技术领域。本发明为了实现OpenMP Offloading程序中复杂指针数据结构在异构计算平台上的自动管理并保证数据一致性。本发明包括:信息收集模块,用于对源程序的静态分析及程序信息收集;自动转换模块,主要负责根据变量类型的不同,在适当位置修改源码并插入合适的运行时API;运行时模块,主要负责使用cudaMallocManaged( )和cudaFree( )重新实现C++标准的内存管理操作并向外提供接口。本发明可以自动管理OpenMP Offloading程序中复杂指针数据结构在CPU和GPU内存之间的内存分配、释放以及数据传输,并保证数据一致性;从而为OpenMP Offloading程序开发提供便利。
技术领域
本发明涉及OpenMP Offloading程序中复杂指针数据结构自动管理系统,涉及异构编程技术领域。
背景技术
OpenMP是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受,用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(CompilerDirective)[1]。OpenMP支持的编程语言包括C、C++和Fortran;而支持OpenMP的编译器包括Sun Compiler,GNU Compiler和Intel Compiler等。OpenMP提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma原语来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。
在高性能计算领域,各种加速器(如GPU、FPGA、DSP、MLU等)已经成为除CPU之外的重要算力来源。从4.0版本开始,OpenMP增加了Offloading(卸载)特性,OpenMPOffloading支持CPU+加速器的异构编程模型;经过4.5和5.0版本的发展,OpenMPOffloading逐步完善。OpenMPOffloading为OpenMP程序充分利用异构计算平台算力提供了可能,但将现有的OpenMP CPU程序修改为符合Offloading特性的程序仍然是一件困难、繁琐、易出错的工作,尤其是程序中包含复杂指针数据结构,例如:类嵌套指针、vector容器、多级嵌套指针等。
虽然OpenMPOffloading语法简单,但仍需用户利用相关pragma原语显示管理CPU和加速器之间的数据传输操作,这给开发者造成了极大不便,尤其是遇到复杂指针数据结构时。例如C++中的vector容器,其内存分配是隐式的,开发者不易控制内存分配和数据传输,也就很难使用Offloading特性。对于嵌套指针或多级嵌套指针,处理不同级别指针指向的内存在CPU和加速器内存空间中的分配、释放、数据传输是繁琐且极易出错的工作,这也使开发者对Offloading特性望而却步。
NVIDIA GPU平台的CUDA编程模型从6.0版本开始支持统一内存(Unified Memory,UM)特性;该特性将CPU和GPU的地址空间统一,并自动管理CPU和GPU之间的数据传输。统一内存特性为OpenMP Offloading程序开发中复杂指针数据结构的自动化处理提供了可能的技术手段。
发明内容
本发明要解决的技术问题为:
本发明的目的是提出一种面向异构平台的OpenMP Offloading程序中复杂指针数据结构自动管理系统,以解决现有技术在OpenMP CPU程序的基础上无法自动修改内存分配和释放语句并自动插入相关pragma原语,不能自动管理CPU和加速器之间的数据传输,无法保证包含复杂指针数据结构的程序在异构计算平台上的数据一致性,从而影响程序性能的问题。
本发明为解决上述技术问题所采用的技术方案为:
一种面向异构平台的复杂指针数据结构自动管理系统,所述系统用于实现OpenMPOffloading程序中复杂指针数据结构在异构计算平台上的自动管理并保证数据一致性;
该系统包括以下三个模块:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010971038.9/2.html,转载请声明来源钻瓜专利网。