[发明专利]利用C++编译器的CPU-GPU数据同步方法和装置有效
申请号: | 202210409838.0 | 申请日: | 2022-04-19 |
公开(公告)号: | CN114756369B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 贾磊 | 申请(专利权)人: | 北京领为军融科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;G06F8/41 |
代理公司: | 北京远大卓悦知识产权代理有限公司 11369 | 代理人: | 卞静静 |
地址: | 102627 北京市大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 c++ 编译器 cpu gpu 数据 同步 方法 装置 | ||
本发明公开了一种利用C++编译器的CPU‑GPU数据同步方法,包括:获取需要进行CPU‑GPU同步的数据的描述;调用C++编译器对需要进行CPU‑GPU同步的数据的描述进行编译,执行编译结果,计算得到渲染系统共享数据和各模块专属数据在内存中需要的存储空间和存储地址,以及在显存中需要的存储空间和存储地址;将需要进行CPU‑GPU同步的数据按渲染系统共享数据和各模块专属数据加载至共享数据和各模块专属数据各自在内存中的存储空间内;将渲染系统共享数据和各模块专属数据按各自在显存中的存储地址从内存中同步至共享数据和各模块专属数据各自在显存中的存储空间内。本发明克服了现有渲染系统缓存本地性差的缺点。
技术领域
本发明涉及计算机技术领域。更具体地说,本发明涉及一种利用C++编译器的CPU-GPU数据同步方法和装置。
背景技术
渲染系统通常由若干渲染模块构成,基于业务数据,若干渲染模块分别处理不同类型的渲染任务,渲染模块在处理渲染任务时其数据均源自CPU,这些数据(包括系统共享数据和模块专属数据)在渲染过程中需要同步至GPU,现有的渲染系统在CPU-GPU数据同步方面,一般采取以下策略:a、系统共享数据由渲染框架负责数据管理;b、各渲染模块专属数据由各渲染模块自身负责,即通过在内存中创建各自的存储区间,以及在GPU端显存中创建各自的存储区间,再进行两者间的数据同步。上述策略中,由于渲染模块各自负责各自的专属数据同步,故在内存上各模块分配的存储区间零星分散,那么各模块的专属数据在内存中不能连续成片分布(如图1所示),而在CPU计算过程中,为了提高CPU性能,CPU中一般会内置算法,以在缓存中提前预加载可能使用到的数据,例如需要用到的数据分布在连续的内存中,CPU一旦读取了部分数据,那么CPU缓存中有极大概率通过预加载提前读取在连续的内存中的其他数据,因此,上述策略容易导致不同模块的专属数据在渲染过程难以提前读取至CPU缓存中,又CPU对存储类型不同的数据访问速度也不同,如CPU对L2缓存的访问速度在纳秒级别,对内存的访问速度则在微秒级别,由于上述策略使CPU在处理完一个模块的专属数据后不能立即从缓存中读取下一个模块的专属数据,还需要从内存中读取,这就造成了缓存本地性差、系统效率低的问题,GPU原理与CPU类似,因此GPU中也存在同样问题,另外,从系统角度看,由于渲染模块各自负责各自的专属数据同步,那么系统就要进行多次数据同步,这就进一步降低了系统效率。
发明内容
本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。
本发明还有一个目的是提供一种利用C++编译器的CPU-GPU数据同步方法和装置,可对需要进行CPU-GPU同步的数据所需的内存和显存进行集中分配,克服了缓存本地性差的缺点,同时对渲染系统共享数据和各模块专属数据进行了集中同步,减少了数据同步次数,提高了渲染系统效率。
为了实现根据本发明的这些目的和其它优点,提供了一种利用C++编译器的CPU-GPU数据同步方法,其包括:
获取需要进行CPU-GPU同步的数据的描述,所述需要进行CPU-GPU同步的数据的描述是用户通过模板标签在特定维度对需要进行CPU-GPU同步的数据进行标注得到的;
调用C++编译器对需要进行CPU-GPU同步的数据的描述进行编译,执行编译结果,计算得到渲染系统共享数据和各模块专属数据在内存中需要的存储空间和存储地址,以及在显存中需要的存储空间和存储地址,以使渲染系统共享数据和各模块专属数据可在内存中连续保存,以及可在显存中连续保存;
将需要进行CPU-GPU同步的数据按渲染系统共享数据和各模块专属数据各自在内存中的存储地址分别加载至共享数据和各模块专属数据各自在内存中的存储空间内;
将渲染系统共享数据和各模块专属数据按各自在显存中的存储地址从内存中同步至共享数据和各模块专属数据各自在显存中的存储空间内。
优选的是,所述特定维度包括:数据静态/动态更新、数据类型两个维度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京领为军融科技有限公司,未经北京领为军融科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210409838.0/2.html,转载请声明来源钻瓜专利网。