我不明白为什么要断言这个断言。我相信我有正确的代码序列来设置脚本组
ScriptGroup.Builder sBuilder = new ScriptGroup.Builder(mRS);
sBuilder.addKernel(K1.getKernelID_root());
sBuilder.addKernel(K2.getKernelID_root());
sBuilder.addConnection(inAlloc.getType(),
K1.getKernelID_root(),
K2.getKernelID_root());
ScriptGroup sGroup = sBuilder.create();
sGroup.setInput(K1.getKernelID_root(), inAlloc);
sGroup.setOutput(k2.getKernelID_root(), outAlloc);
sGroup.execute();
我问,因为我发现K1执行,但K2根本不执行。相反,抛出这个断言。这个断言可能与这种行为有关吗?
@jason
我通过使用属性((内核))对内核进行限定来解决此问题,然后脚本组执行正确触发。这避免了断言,我可以清楚地看到两个内核都按预期执行。但是,这个断言发生时的情景还有一些细节。我之前对内核的定义是void root(short3 *out, uint32_t out_x, uint32_t out_y)
。因此,当内核被定义为这样(即定义为root)时,似乎抛出了断言。看起来ScriptGroup.SetInput之间存在某种冲突,如果内核被定义为root。当我有机会时,我会尝试重现这个问题。就目前而言,如上所述,我已经过了这个问题。
答案 0 :(得分:0)
我在源中没有看到任何明显的问题。你有没有机会在K1& amp; K2是?
您看到的断言确实表明存在问题。