说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利 (10)授权公告 号 (45)授权公告日 (21)申请 号 202210409838.0 (22)申请日 2022.04.19 (65)同一申请的已公布的文献号 申请公布号 CN 114756369 A (43)申请公布日 2022.07.15 (73)专利权人 北京领为军融科技有限公司 地址 102627 北京市大兴区金 苑路甲15号6 幢8层A818室 (72)发明人 贾磊  (74)专利代理 机构 北京远大卓悦知识产权代理 有限公司 1 1369 专利代理师 卞静静 (51)Int.Cl. G06F 9/50(2006.01) G06F 9/54(2006.01)G06F 8/41(2018.01) (56)对比文件 CN 113674133 A,2021.1 1.19 CN 112819678 A,2021.0 5.18 US 201818215 3 A1,2018.0 6.28 US 20202 94179 A1,2020.09.17 审查员 崔鑫彤 (54)发明名称 利用C++编译器的CPU-GPU数据同步方法和 装置 (57)摘要 本发明公开了一种利用C++编译器的CPU ‑ GPU数据同步方法, 包括: 获取需要进行CPU ‑GPU 同步的数据的描述; 调用C++编译器对需要进行 CPU‑GPU同步的数据的描述进行编译, 执行编译 结果, 计算得到渲染系统共享数据和各模块专属 数据在内存中需要的存储空间和存储地址, 以及 在显存中需要的存储空间和存储地址; 将需要进 行CPU‑GPU同步的数据按 渲染系统共 享数据和各 模块专属数据加载至共享数据和各模块专属数 据各自在内存中的存储空间内; 将渲染系统共享 数据和各模块专属数据按各自在显存中的存储 地址从内存中同步至共享数据和各模块专属数 据各自在显存中的存储空间内。 本发 明克服了 现 有渲染系统缓存本地 性差的缺 点。 权利要求书1页 说明书5页 附图2页 CN 114756369 B 2022.12.09 CN 114756369 B 1.一种利用C+ +编译器的CPU ‑GPU数据同步方法, 其特 征在于, 包括: 获取需要进行CPU ‑GPU同步的数据的描述, 所述 需要进行CPU ‑GPU同步的数据的描述是 用户通过模板标签在特定维度对需要进行CPU ‑GPU同步的数据进行标注得到的, 所述需要 进行CPU‑GPU同步的数据的描述中记载有数据所属的数据类型、 以及不同数据类型对应的 存储规则; 调用C++编译器对需要进行CPU ‑GPU同步的数据的描述进行编译, 执行编译结果, 计算 得到渲染系统共享数据和各模块专属数据在内存中需要的存储空间和存储地址, 以及在显 存中需要的存储空间和存储地址, 以使渲染系统共享数据和各模块专属数据可在内存中连 续保存, 以及可在显存中连续保存; 将需要进行CPU ‑GPU同步的数据按渲染系统共享数据和各模块专属数据各自在内存中 的存储地址分别加载至共享数据和各模块专属数据各自在内存中的存 储空间内; 将渲染系统共享数据和各模块专属数据按各自在显存中的存储地址从内存中同步至 共享数据和各模块专属数据各自在显存中的存 储空间内。 2.如权利 要求1所述的利用C++编译器的CPU ‑GPU数据同步方法, 其特征在于, 所述特定 维度包括: 数据静态/动态更新、 数据类型两个维度。 3.一种利用C+ +编译器的CPU ‑GPU数据同步装置, 其特 征在于, 包括: 编码单元, 其用于获取需要进行CPU ‑GPU同步的数据的描述, 所述需要进行CPU ‑GPU同 步的数据的描述是用户通过模板标签在特定维度对需要进 行CPU‑GPU同步的数据进 行标注 得到的, 所述需要进 行CPU‑GPU同步的数据的描述中记载有 数据所属的数据类型、 以及不同 数据类型对应的存 储规则; 编译单元, 其用于调用C++编译器对需要进行CPU ‑GPU同步的数据的描述进行编译, 执 行编译结果, 计算得到渲 染系统共享数据和各模块专属数据在内存中需要的存储空间和存 储地址, 以及在显存中需要的存储空间和存储地址, 以使渲染系统共享数据和各模块专属 数据可在内存中连续保存, 以及可在显存中连续保存; 加载单元, 其用于将需要进行CPU ‑GPU同步的数据按渲染系 统共享数据和各模块专属 数据各自在内存中的存储地址分别加载至共享数据和各模块专属数据各自在内存中的存 储空间内; 同步单元, 其用于将渲染系统共享数据和各模块专属数据按各自在显存中的存储地址 从内存中同步至共享数据和各模块专属数据各自在显存中的存 储空间内。 4.如权利 要求3所述的利用C++编译器的CPU ‑GPU数据同步装置, 其特征在于, 所述特定 维度包括: 数据静态/动态更新、 数据类型两个维度。 5.一种电子设备, 其特征在于, 包括: 至少一个处理器, 以及与所述至少一个处理器通 信连接的存储器, 其中, 所述存储器存储有 可被所述至少一个处理器执行的指 令, 所述指 令 被所述至少一个处理器执行, 以使所述至少一个处理器执行权利要求 1~2中任一项 所述的 方法。 6.一种存储介质, 其上存储有计算机程序, 其特征在于, 该程序被处理器执行时, 实现 权利要求1~ 2中任一项所述的方法。权 利 要 求 书 1/1 页 2 CN 114756369 B 2利用C++编译器的CPU ‑GPU数据同步方 法和装置 技术领域 [0001]本发明涉及 计算机技术领域。 更具体地说, 本 发明涉及一种利用C++编译器的CPU ‑ GPU数据同步方法和装置 。 背景技术 [0002]渲染系统通常由若干渲染模块构成, 基于业务数据, 若干渲染模块分别 处理不同 类型的渲染任务, 渲染模块在处理渲染任务时其数据均源自CPU, 这些数据(包括系统共享 数据和模块专属数据)在渲染过程中需要同步至GPU, 现有的渲染系统在CPU ‑GPU数据同步 方面, 一般采 取以下策略: a、 系统共享数据由渲 染框架负责数据管 理; b、 各渲 染模块专属数 据由各渲 染模块自身负责, 即通过在内存中创建各自的存储区间, 以及在GPU端显存中创建 各自的存储区间, 再进 行两者间的数据同步。 上述策略中, 由于渲 染模块各自负责各自的专 属数据同步, 故在内存上各模块分配的存储区间零星分散, 那么各模块的专属数据在内存 中不能连续 成片分布(如图1所示), 而在CPU计算过程中, 为了提高CPU性能, CPU中一般会内 置算法, 以在缓存中提前预加载可能使用到的数据, 例如需要用到的数据分布在连续的内 存中, CPU一旦读取了部分数据, 那么CPU缓存中有极大概率通过预加载提前读取在连续的 内存中的其他数据, 因此, 上述策略容易导致不同模块的专属数据在渲染过程难以提前读 取至CPU缓存中, 又CPU对存储类型不同的数据访问速度也不同, 如CPU对L2缓存的访问速度 在纳秒级别, 对内存的访问速度则 在微秒级别, 由于上述策略使CPU在处理完一个模块的专 属数据后不能立即从缓存中读取下一个模块的专属数据, 还需要从内存中读取, 这就造成 了缓存本地性差、 系统效率低的问题, GPU原理与CPU类似, 因此GPU中也存在同样问题, 另 外, 从系统角度看, 由于渲 染模块各自负责各自的专属数据同步, 那么系统就要进 行多次数 据同步, 这 就进一步降低了系统效率。 发明内容 [0003]本发明的一个目的是解决至少上述问题, 并提供至少后面将说明的优点。 [0004]本发明还有一个目的是提供一种利用C ++编译器的CPU ‑GPU数据同步方法和装置, 可对需要进行CPU ‑GPU同步的数据所需的内存和显存进行集中分配, 克服了缓存本地性差 的缺点, 同时对渲染系统共享数据和各模块专属数据进行了集中同步, 减少 了数据同步次 数, 提高了渲染系统效率。 [0005]为了实现根据本发明的这些目的和其它优点, 提供了一种利用C++编译器的CPU ‑ GPU数据同步方法, 其包括: [0006]获取需要进行CPU ‑GPU同步的数据的描述, 所述需要进行CPU ‑GPU同步的数据的描 述是用户通过模板标签在特定维度对需要 进行CPU‑GPU同步的数据进行 标注得到的; [0007]调用C++编译器对需要进行CPU ‑GPU同步的数据的描述进行编译, 执行编译结果, 计算得到渲 染系统共享数据和各模块专属数据在内存中需要的存储空间和存储地址, 以及 在显存中需要的存储空间和存储地址, 以使渲染系统共享数据和各模块专属数据可在内存说 明 书 1/5 页 3 CN 114756369 B 3

.PDF文档 专利 利用C++编译器的CPU-GPU数据同步方法和装置

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 利用C++编译器的CPU-GPU数据同步方法和装置 第 1 页 专利 利用C++编译器的CPU-GPU数据同步方法和装置 第 2 页 专利 利用C++编译器的CPU-GPU数据同步方法和装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 07:15:02上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。