虽然在理论上完结现代GPU的办法是无限的,但真实有用的办法是切实地了解问题并着手将计划变为实际。制作现代高功用半导体器材以及企图加快当时可编程光栅化技能所面对的问题提醒了GPU硬件职业开展的未来趋势。
例如在现代GPU中SIMD处理和固定功用纹路单元是必不可少的,以至于不运用它们来规划的GPU计划简直必定意味着在研讨之外不具有商业上的可行性和实用性。即使是曩昔20年来,任何一个GPU最张狂的愿景也没有放弃这些中心准则(安眠吧,Larrabee(英特尔公司GPU 的芯片代号))。
曩昔15年来实时光线追寻加快一向被默认为是GPU规划中最令人烦心的问题,关于光线追寻应该如安在GPU上完结的干流标准是微软推出的DXR,它要求的履行模型却不能真实融入GPU的作业方法,这无疑给任何需求支撑它的GPU规划者带来一些严峻的潜在问题。假如实时光线追寻是它们曩昔十年时刻没有考虑过的作业,那么这个问题会愈加显着,而Imagination一向在重视这个问题。
光线追寻面对的要害应战
假如你遵从DXR标准并考虑需求在GPU中完结些什么然后供给核算加快功用,那么你将很或许快速梳理出以下这几个不论选用何种规划计划都需求处理的问题:
首要,你需求一种办法来生成和处理一组包含几许体的数据结构,然后能以更有用的办法依据几许体来盯梢光线。其次,当追寻光线时,GPU要测验光线是否与之相交,要供给一些用户可界说的编程接口。第三,被盯梢的光线能够宣布新的光线!DXR标准界说的完结计划还需求考虑其他问题,可是从大局来看这三个要素是最重要的。
生成和运用加快数据结构来有用地表明需求做相交测验的几许体意味着GPU或许要完结一个全新的履行阶段,然后咱们需求用全新的接口函数处理这些新的数据结构,测验是否相交,之后在程序员的操控下依据相交测验的成果完结一些功用。GPU是并行的规划,所以一起处理一堆光线意味着什么?这样做是否发现了新应战,而这些应战与传统的几许和像素并行处理所带来的应战却大不相同?
上一个问题的答案是十分必定的,确实这些差异对如何将光线追寻映射到现有的GPU履行的模型中有着深远的影响。这些GPU存在核算资源和内存资源的不平衡,导致内存拜访成为一种名贵的资源,而糟蹋这些资源是导致功率和功用低下的最首要原因之一。
PowerVR光线追寻混合烘托效果
哦不——咱们做了些什么?
GPU被规划成能够任何方法充分运用与之衔接的DRAM的拜访,运用内存拜访的空间或时刻局部性来作为完结这一意图的办法。值得幸亏的是,最常见和最现代化的光栅化烘托有一个很好的特性,即在上色期间(尤其是像素上色一般是任何给定帧的首要作业负载)三角形和像素极点有或许与它们的近邻同享相关数据。因而,您拜访一组像素所需的任何缓存数据,很或许下一个相邻的组将需求运用您现已从DRAM中提取并缓存的部分或悉数内存数据。关于当今大多数栅格化烘托作业负载而言,这都是正确的,因而咱们都能够松一口气,并环绕该特点规划GPU架构。
当咱们运用光线追寻,这些就都失效了。光线追寻使一切空间局部性消失。下面让咱们来剖析其间的原因。
物体外表的问题
最简略的考虑办法便是调查四周,在你坐下来阅览这篇文章时留意光线在你所在环境中的效果。由于光线追寻建模了光线从一切光源传达时的特点,因而它有必要处理光线照耀在场景中任何外表时产生的状况。或许咱们只关怀光线照耀哪些物体,或许物体的外表以均匀的方向散射光线,但它也或许彻底是随机的。或许外表吸收了一切的光,因而不会有次级光线的传达。或许外表有一种原料特点,使它能够部分吸收简直一切照耀来的光线,然后随机散射它不能捕获的少数光线。
只要第一种场景能够映射到GPU的运用内存拜访局部性的作业方法,即使如此也只要当一切并行处理的光线都照耀到同一类型的三角形时才能够。
正是这种显着不合的或许性导致了这些问题,假如并行处理的任何光线彼此之间或许会有不同的效果,包含碰击不同的加快数据结构或宣布新的光线,那么GPU能高效作业的基本条件就会被损坏,并且这一般比在传统的几许图形或像素处理中遇到的发散现象更具有损坏性。
相干性集合
PowerVR对光线追寻硬件加快的完结所做的是硬件光线追寻和排序,它与当今职业界任何其他硬件光线追寻加快比较都是绝无仅有的,这对软件方面来说是彻底通明的,保证硬件上并行追寻的发射光线具有潜在的相似性。咱们称之为相干性集合。
硬件保护了一个数据结构,用于层次化的存储软件宣布的正在被硬件处理的光线,并能够依据它们的方向按它们在加快结构中行进的方位进行挑选和分组。这意味着当它们被处理时更或许同享存储器中被拜访的加快数据结构中的数据,且额定的优势是能够最大化随后要并行处理的光线-几许体相交核算的数量。
经过剖析由硬件调度的光线,咱们能够保证以GPU友爱的办法对它们进行分组,然后更高效地进行后续处理,这些是该体系成功的要害,有助于防止打破GPU职业为高效的光栅化烘托而精心规划的运转方法,这就防止了光线追寻硬件对特别类型存储体系的需求,因而供给了与GPU的其他部分更简略集成的计划。
相干性集合机制自身适当的杂乱,由于它需求快速的追寻,排序和调度一切被提交到硬件中处理的光线,然后不会反压前级用于发射光线的调度体系,也不会形成后级以排序好的光线和加快数据结构为输入的硬件的闲暇。
假如没有硬件体系来协助GPU处理光线排序,那么就需求依靠应用程序或游戏开发人员以某种办法在主机上处理光线的相干性问题,或许在GPU上参加一个中心的核算环节来处理光线排序——条件是这种办法被硬件所支撑,以上假定的办法中没有一个能在实时的硬件平台上提高功率和功用,可是Imagination是市场上仅有具有这种硬件光线追寻体系的GPU IP供货商。
紧跟潮流
Imagination之所以成为职业界仅有针对硬件光线追寻供给处理计划的供货商是由于咱们现已致力于处理这个问题很长时刻了。与职业中其他一些正在缓慢发展的技能比较,光线追寻现已成为当今图形技能广泛选用API之一。
咱们的相干性集合特性与现在职业的光线追寻彼此兼容(假如光线刚好发射出新的光线,仓库将会被开释也或许发射出新的光线等等),在每个阶段进行相干性集合处理并保证咱们尽或许地完结硬件光线追寻的强壮功用。
在现代的硬件光线追寻体系中最重要的是丈量光线束、峰值并行测验率或空光线发射和未命中率,这些是描绘光线追寻硬件功用的简略办法,可是也并不是十分的有用,究竟开发人员并不只关怀高峰值并行测验率或漏测率。
咱们的方针是在整个加快体系中运用全面的光线追寻,这样开发人员就能够用光线束预算要完结哪些有用的功用。咱们的相干性集合体系与咱们供给的处理计划一起完结了这个方针,与职业界的其他计划比较是绝无仅有的。