当前位置: 首页 > 专利查询>辉达公司专利>正文

图形处理单元中的3D加速结构的完全并行适当地构造制造技术

技术编号:9434565 阅读:138 留言:0更新日期:2013-12-12 00:36
本发明专利技术涉及一种图形处理单元中的3D加速结构的完全并行适当地构造。一种用于并行地构造二叉基数树的系统和方法,该二叉基数树用作用于构造二级(secondary)树的构建块。公开了具有用于使计算机系统实施方法的计算机可执行指令的非暂时性计算机可读存储介质。该方法包括确定包括被索引化的基元节点的总数的多个基元,其中多个基元与层次树的叶节点相对应。该方法包括将多个基元排序。该方法包括以至多要求关于基元节点的总数成线性数量的临时存储的方式构建层次树。该方法包括与层次树的内部节点的祖先节点的一个或多个并行地构建该内部节点。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种图形处理单元中的3D加速结构的完全并行适当地构造。一种用于并行地构造二叉基数树的系统和方法,该二叉基数树用作用于构造二级(secondary)树的构建块。公开了具有用于使计算机系统实施方法的计算机可执行指令的非暂时性计算机可读存储介质。该方法包括确定包括被索引化的基元节点的总数的多个基元,其中多个基元与层次树的叶节点相对应。该方法包括将多个基元排序。该方法包括以至多要求关于基元节点的总数成线性数量的临时存储的方式构建层次树。该方法包括与层次树的内部节点的祖先节点的一个或多个并行地构建该内部节点。【专利说明】图形处理单元中的3D加速结构的完全并行适当地构造相关申请的交叉引用本申请是2012年3月9 日提交的、名为“FULLY PARALLEL IN-PLACE CONSTRUCTION0F3D ACCELERATION STRUCTURES ON A GPU” 的临时专利申请 61/609,156 的变换并要求其优先权和权益,本文在此通过援弓I的方式对其全文加以合并。
技术介绍
近些年来,通用计算产生了一些用于构造层次包围盒(BVH)、八叉树以及k-d树的方法用于数百万的实时的基元。一些方法目标在于使用表面积启发式(surface areaheuristic)最大化结果树的质量,而其他方法选择用增加的构造的速度换取树的质量。正确的质量与速度的权衡特别依靠于应用。树的质量在经常重新使用相同加速结构用于数百万的射线的射线追踪中通常是优选的。实时物理中的宽阶段(BTOad-PhaseMi撞检测和粒子交互表示其他极端,其中构造速度是首要重要的一必须在每个时间步长上重新构造加速结构,并且询问的数目通常相当小。此外,某些应用,诸如基于体素(voxel)的全局照明和表面重新构造,具体依靠规则的八叉树和k-d树,其中树的质量是固定的。目标在于最大化构造速度的现有方法的主要缺点是其以顺序方式生成节点层次,通常一次一级,因为必须在下一个可以开始之前完成每轮处理。这限制了其在树的顶级可达到的并行度的量,并可导致并行核心的严重的未充分利用。顺序处理具有小工作负载,已是当前GPU的瓶颈,当前GPU要求数万独立的并行线程以完全利用其计算能力。可预计在将来随着并行核心的数目持续增加,问题甚至会更显著。顺序处理的另一个含义是现有方法以宽度优先(breadth-first)的次序输出层次,虽然考虑到数据所在位置和高速缓存命中率,深度优先的次序将通常是优选的。
技术实现思路
一种用于最大化诸如层次包围体(BVH)、八叉树以及k-d树的层次树的构造中的平行度的计算机实现的方法和系统。本专利技术的实施例提供用于构造BVH、八叉树以及k-d树的快速的方法,以便整体性能与可用核心的数目成线性比例,并且作为结果的数据结构总是按照严格的深度优先的次序。新颖的方法包括以完全数据并行的方式构造二叉基数树。二叉基数树随后用作用于有效地构造其他类型的树的构建块。在一个实施例中,公开了具有用于使计算机系统执行方法的计算机可执行指令的非暂时性计算机可读存储介质。方法包括确定包括被索引化的基元节点的总数的多个基元,其中多个基元与层次树的叶节点相对应。方法包括将多个基元排序。方法包括以至多要求关于基元节点的总数成线性数量的临时存储的方式构建层次树。方法还包括与层次树的内部节点的祖先节点的一个或多个并行地构建该内部节点。也就是说,与层次树的一个或多个内部节点的各自的祖先节点的一个或多个并行地构建该内部节点。在另一个实施例中,公开了计算机系统,包括处理器,以及耦连到该处理器并具有存储在其中的指令的存储器,该指令如果由计算机系统所执行,那么使计算机系统执行方法。方法包括确定包括被索引化的基元节点的总数的多个基元,其中多个基元与层次树的叶节点相对应。方法包括将多个基元排序。方法包括以至多要求关于基元节点的总数成线性数量的临时存储的方式构建层次树。方法还包括与层次树的内部节点的祖先节点的一个或多个并行地构建该内部节点。也就是说,与层次树的一个或多个内部节点的各自的祖先节点的一个或多个并行地构建该内部节点。在又一个实施例中,公开了包括用于为多个基元指派莫顿码的装置的系统,所述多个基元包括被索引化的基元节点的总数,其中多个基元与层次树的叶节点相对应。系统包括用于将多个基元排序的装置。系统包括用于以至多要求关于基元节点的总数成线性数量的临时存储的方式构建层次树的装置。系统还包括用于与层次树的内部节点的祖先节点的一个或多个并行地构建该内部节点的装置。也就是说,与层次树的一个或多个内部节点的各自的祖先节点一个或多个并行地构建该内部节点。在一个实施例中,公开了具有用于使计算机系统执行用于根据二叉树构造层次包围体的方法的计算机可执行指令的非暂时性计算机可读存储介质。方法包括提供二叉树,该二叉树包括多个叶节点和多个内部节点。多个内部节点的每个唯一地与2个子节点相关联,其中每个子节点包括内部节点或叶节点。方法还包括通过从多个叶节点朝向根节点向上遍历二叉树,确定多个包围体用于二叉树中的节点,其中每个父节点由稍后到达的相对应的子节点处理一次。在另一个实施例中,公开了系统用于根据层次树结构构建层次包围体。系统包括层次树生成器用于构建包括多个叶节点和多个内部节点的二叉树。多个内部节点的每个唯一地与2个子节点相关联,其中每个子节点包括内部节点或叶节点。系统还包括关系模块用于生成父指针用于二叉树中的每个节点。也就是说,当构建二叉树时,还生成从各自的子节点指向父节点的父指针。系统还包括调度器用于选择一个或多个叶节点用于由多个线程并行地处理。叶节点与路径相关联用于确定包围体,其中路径在叶节点处开始并且向上穿过二叉树穿过相关联的并相对应的父节点继续。系统还包括包围体生成器用于通过从多个叶节点朝向根节点向上遍历二叉树来确定多个包围体用于二叉树中的节点,其中每个父节点由稍后到达的相对应的子节点处理一次。系统还包括父节点遍历器用于在第一线程上从第一子节点原子地遍历到第一父节点,其中所述第一父节点与所述第一子节点和第二子节点相关联。系统还包括与父节点相关联的计数器用于确定第一父节点之前是否已在第二线程上由第二子节点所遍历到。包围体生成器配置为当第一父节点先前已在第二线程上由第二子节点所遍历到时,确定父包围体用于使用第一线程的第一父节点。在阅读接下来以各种图示所示出的实施例的详细描述后,本领域的普通技术人员将认识到本公开的各种实施例的这些和其他对象和优点。【专利附图】【附图说明】附图被包含在本说明书中并形成本说明书的一部分,并且其中同样的数字描绘同样的元素,附图示出了本公开的实施例,并且与描述一起意图解释本公开的原理。图1描绘了根据本公开的一个实施例的、适合用于实现本方法的示例性计算机系统的框图。图2是根据本公开的一个实施例的、示出了用于并行地构造层次树的计算机实现的方法的流程图。图3是根据本公开的一个实施例的、在基数树的构造期间所使用的有序二叉基数树(binary radix tree)的图。图4是根据本公开的一个实施例的、在图3中首先提出的、用于二叉基数树的节点层次布局的图。图5是根据本公开的一个实施例的、示出了用于并行地构造二叉基数树的方法的流程图。图6是根据本公开的一个实施例的、本文档来自技高网
...

【技术保护点】
一种具有计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令用于使计算机系统实施包括以下步骤的方法:确定包括被索引化的基元节点的总数的多个基元,其中所述多个基元与层次树的叶节点相对应;将所述多个基元排序;以及至多要求关于所述基元节点的总数成线性数量的临时存储地构建所述层次树;以及与所述层次树的内部节点的祖先节点的一个或多个并行地构建所述内部节点。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:泰罗·卡拉斯
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1