ice*_*eze 5 cuda raytracing nvidia optix
有没有办法在optix中声明动态大小的数组有效负载?我用Google搜索并阅读了Optix文档,但却发现Optix不允许使用malloc.我有什么方法可以做以下的事情吗?
struct PerRayData_radiance
{
float3 result;
float importance;
int depth;
float stuff[N];
};
Run Code Online (Sandbox Code Playgroud)
我根据一些用户参数将数组大小调整为N大小.
我尝试在NVIDIA论坛上搜索过去的问题,但由于某些安全问题,它似乎已被关闭.
你不能。我在 NVIDIA OptiX 论坛上问了这个问题,因为我想为我的应用程序执行此操作(希望我能给您一个 http 指针)。不幸的是,OptiX 使用的 ptx 生成文件的一个限制是您不能在您传递的辐射光线中进行这种动态分配。
对于我们的应用程序,我们必须使用具有最大大小的数组和指定当前运行长度的 uint。我知道这是浪费内存,但我没有看到任何解决办法。
您需要尝试使用应用程序和硬件的最大大小,因为在这种情况下堆栈大小可能会增加。