通过执行扫描操作压缩数组(将输入数组中的所需元素放入输出数组)后,在放置所需元素后,输出(压缩)数组中可能会以连续形式留下一些空白空间。有没有办法在不返回主机的情况下释放 OpenCL 内核代码本身中的这些空白空间(只是为了删除)......?
例如,我有一个包含 100 个元素的输入数组,其中一些元素大于 50,其中一些元素小于 50,并且希望将大于 50 的元素存储在不同的数组中,并且只对其中的那些元素进行进一步处理数组,我不知道这个输出数组的大小,因为我不知道实际上有多少个数大于 50(所以我声明这个数组的大小为 100)......然后在执行之后扫描我得到所有元素超过50个的输出数组...但是在存储这些元素后输出数组中可能会有一些连续的空格为空...那么我们如何删除这些空格...有没有办法在内核代码本身中这样做......?或者我们是否必须为此返回主机代码......?
如果我们无法删除内核代码本身中的剩余空间,并且如果我们不想返回到主机代码中,我们如何处理这些压缩数组以进行进一步处理?