CUDA和其他OptiX组件中的射线三角形相交固有函数

4
有没有直接使用CUDA硬件加速光线三角形相交的方法,而不使用OptiX?这类似于在CUDA中直接使用张量核心进行小矩阵乘法的方式,可以看到CUDA 9.0部分中对张量核心的编程访问。似乎这应该至少可以通过使用内联PTX的方式,在不受支持的情况下实现(也许通过某些逆向工程的OptiX二进制文件)。
更一般地说,能否在不使用完整流水线的情况下使用OptiX的任何子组件?例如,OptiX是否只能用于生成加速数据结构并单独使用?或者RT核心是否可以在设备代码内遍历由Optix未生成的自定义BVH?
1个回答

1
截至本文撰写,目前没有用于访问RT核心的PTX或CUDA机制。这并不意味着未来不会发生变化,但今天就是这样。部分原因是因为RT核心查询不像矩阵乘法那样简单、有限、自包含。直接访问RT核心可能比您想象的更复杂,这也是为什么OptiX / DXR / VKR将这些查询与简化交互的API一起封装的部分原因。
OptiX可以在完整管线之外生成加速结构,但由于格式是专有的(并且经常更改),因此实际上不能在一个光线追踪API之外使用或遍历。BVH可以移动(“重新定位”)到主机或另一个设备,但需要在目标设备上进行一些修补才能遍历。而且数据传输成本通常超过完整BVH重建的成本,因此在除了将要使用的设备之外的任何地方创建BVH通常不会有任何帮助。
OptiX去噪器也可以在完整管道之外使用。除此之外,管道对于着色器程序编译是必要的,因此一旦您想要跟踪任何射线,您就需要一个管道。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接