金磊发自凹非寺
量子位公众号 QbitAI
千呼万唤始出来。
AMD,终于把 Radeon 光线追踪分析器(RRA)在 GitHub 上开源了!
简单来说,RRA 是一套可以提高 AMD GPU 光线追踪性能的工具。
虽然它在今年 7 月就已经被提出,但当时在 GitHub 上除了“一纸”文档之外就没有任何东西。
而现如今,这个源代码多达96000 行的工具开源,可谓是给游戏开发者带来了福音,也引发了不小讨论:
然后对于 AMD 的此举,也有网友附上了老梗:A卡战未来。
AMD 的这个工具有什么用?
正如刚才我们提到的,这个工具主要的作用,就是提高 AMD GPU 在光追场景中的性能。
更具体一点,根据 AMD 官方给出的说法,游戏开发者在工作时往往需要创建加速结构。
因此,在这个过程中,就需要一种可视化的方法,来“看清”这些结束结构,以及了解它们是如何对性能产生的影响。
而 RRA 就允许开发者通过标准化光栅化渲染器或使用遍历计数器视图,来可视化边界框层次结构和相关场景几何图形。
在 AMD 看来,光线追踪固有的一个 trade-off,就存在于边界体积层次结构(BVH)的构建时间和遍历时间之间。
开发人员负责将应用程序的网格数据分组到包含在底层加速结构(BLAS)中的几何图形中,并将它们的实例放入顶层加速结构(TLAS)中。
但如果实例的边界框占用大量空白空间,或者与其它实例的边界框有大量重叠,则会损害遍历性能。
例如在下面这个案例中,边界框把所有房屋都给包了起来,与此同时,它也占据了大量的空间:
但若是把地形分割成块,可以大大减少与其它实例边界框的重叠,并且边界体积也更紧密地适应了地形。
AMD 建议游戏开发者可以通过 RRA 这样的工具,来分析 TLAS 的构建时间。
还是基于刚才的案例,若是切换到 RRA 中的遍历计数器渲染模式,可以更清楚地了解光线遍历时间的好处。
可以明显看到的是,当地形被分割成大块时,城堡和最近的两个房子的颜色要暗得多,这就意味着更低的遍历成本。
一些准备工作
那么接下来一个问题是,RRA 怎么用?
对此,在 AMD 官方 GitHub 中也已有所介绍。
游戏开发者首先需要在自己的设备中安装最新的 AMD 视频/显示驱动程序,而老版本的则需要彻底删除。
根据 GitHub 给出的文件下载路径,对其下载并解压。这个文件将包含如下内容:
- Radeon Developer Service(RDS)
- Radeon Developer Service CLI(RDS headless)
- Radeon Developer Panel(RDP)
- Radeon Raytracing Analyzer(RRA)
除此之外,对于 RRA 的一些支持项也需要游戏开发者注意。
例如在 API 方面,RRA 支持 DirectX12 和 Vulkan;ASIC 方面,支持 AMD Radeon RX 6000 系列;在操作系统方面,则支持 Windows(10、11)和 Ubantu(20.04 LTS、22.04 LTS)。
RRA 的开源地址在下面奉上了,有需要的小伙伴可以开用了~
项目地址:
https://github.com/GPUOpen-Tools/radeon_raytracing_analyzer
参考链接:
[1]https://www.phoronix.com/news/AMD-GPUOpen-RRA-Open-Source