gpt4 book ai didi

opengl - 选择性 nvidia #pragma optionNV(全部展开)

转载 作者:行者123 更新时间:2023-12-02 17:45:05 25 4
gpt4 key购买 nike

我正在尝试 nvidia 的展开循环指令,但还没有找到有选择地打开它的方法。

假设我有这个...

void testUnroll()
{
#pragma optionNV(unroll all)
for (...)
...
}

void testNoUnroll()
{
for (...)
...
}

在这里,我假设两个循环最终都被展开。为了阻止这种情况,我认为解决方案将涉及在我想要受影响的 block 之后重置指令,例如:

    #pragma optionNV(unroll all)
for (...)
...
#pragma optionNV(unroll default) //??

但是我不知道将展开行为重置为初始/默认设置的关键字。 如何做到这一点?如果有人还可以指出 nvidia 编译器指令的一些官方文档,那就更好了。

<小时/>

目前,似乎只使用了程序中找到的最后一个#pragma optionNV(unroll *)指令(例如,在最后一行中抛出一个指令,它会覆盖上面的所有内容)。

最佳答案

根据this post在 NVidia 论坛上,之后没有关键字会将其设置为默认行为:

#pragma unroll 1 will prevent the compiler from ever unrolling a loop.

If no number is specified after #pragma unroll, the loop is completely unrolled if its trip count is constant, otherwise it is not unrolled at all.

我不确定它是否适用于 GLSL,但你也许可以尝试:

#pragma optionNV(unroll)

如果有人尝试此方法,请告诉我们它是否有效!

关于opengl - 选择性 nvidia #pragma optionNV(全部展开),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com