金磊 发自 凹非寺 量子位 | 公众号 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 [2]https://news.ycombinator.com/item?id=33653356 [3]https://gpuopen.com/learn/improving-rt-perf-with-rra/
— 完 —