Optix在有效负载中动态调整大小数组

时间:2012-08-30 21:43:24

标签: cuda nvidia raytracing optix

有没有办法在optix中声明动态大小的数组有效负载?我用Google搜索并阅读了Optix文档,但却发现Optix不允许使用malloc。有什么方法可以做以下的事情吗?

struct PerRayData_radiance
{
 float3 result;
 float  importance;
 int depth;
 float stuff[N];
};

我是否根据一些用户参数调整数组大小为N.

我尝试在NVIDIA论坛上搜索过去的问题,但由于某些安全问题,它似乎已被关闭。

1 个答案:

答案 0 :(得分:4)

你做不到。我在NVIDIA OptiX论坛上问到了这个问题,因为我想为我的应用程序做这个(希望我能给你一个http指针)。不幸的是,OptiX使用的ptx生成文件的一个约束是你不能在你传递的辐射光线中进行这种动态分配。

对于我们的应用程序,我们必须使用具有最大大小的数组和指定当前运行的长度的uint。我知道,这会浪费你的记忆力,但我没有看到任何解决方法。

您需要为应用程序和硬件使用最大尺寸,因为在这种情况下可能会推动堆栈大小。