【发布时间】:2021-07-02 19:01:59
【问题描述】:
我想知道是否可以在 Cuda 或 Optix 中加速计算沿 3D 体积中从一点投射到另一点的线/射线的最小值和最大值。
如果没有,Nvidia GPU 上是否有任何特殊硬件可以加速此功能(特别是在 Volta GPU 或 Tesla K80 上)?
【问题讨论】:
-
在 CUDA 中,只有自己编写代码才能实现。 CUDA 是一个通用计算 API,仅此而已。 CUDA 没有内置光线投射设施,API 或语言中也没有任何潜在的硬件加速器(如果确实存在的话)
-
@talonmies 但我具体询问的是 Optix,这是 Nvidia 的加速光线追踪 API,如果可用,它在内部使用 Cuda 和 RTX 技术。在维基百科上,它说 RTX 在 Volta 上运行,这是我的目标架构,并通过 Tensor 核心加速光线追踪。但我看到 Optix 不仅通过特殊硬件,还通过算法来加速光线投射。我的问题仍然存在,我是否可以将 Optix 用于上述任务。据我了解,您可以将 Optix 内核与 Cuda 内核结合使用。
-
所以当您写“如果在 Cuda 或 Optix 中可能”时,您不是指 CUDA,而是指 Optix?
-
我不确定除了使用 Optix 之外是否还有可以在 Cuda 中使用的技术,所以我将其保持打开状态。 GPU 上有特殊的硬件来加速某些事情,例如三线性插值。
-
RTX GPU 提供硬件加速光线追踪。主要的 RTX 引擎提供硬件加速来确定光线在 BVH 中击中的第一件事物。根据我认为的“光线投射”的常见定义,这似乎是定义。我不确定最小/最大光线投射是什么,但根据您在此处的定义,它可能涉及 RTX 引擎中的多次光线遍历。这些都没有在 CUDA 中公开(在 CUDA 中没有办法访问 RTX 引擎),但是它在 Optix 中公开。
标签: cuda nvidia raycasting optix