我正在处理 cuda 中的流体动力学问题并发现了这样的问题
如果我有一个数组,例如长度为 600 的 debug_array 和一个长度为 100 的数组 value_array 我想做某事
for(int i=0;i<6;i++)
{
debug_array[6*(bx*block_size+tx)+i] = value_array[bx*block_size+tx];
}
在此示例中,block_size 将基于 100 个元素的数组,例如 4 个块 block_size 25
如果 value_array 包含例如 10;20;30;..... 我希望 debug_array 有 6 个类似值的组,例如 10;10;10;10;10;10;20;20;20;20;20;20 ;30......
问题是它没有从值数组中获取所有值,知道为什么这不起作用或一个好的解决方法。
如果我定义 float val = value_array[bx*block_size+tx]; 在 for 循环之外并将其保持在循环内 debug_array[bx*block_size+tx+i] = val;
但我想避免这种情况,因为我的内核在循环中有 5 到 10 个设备函数,这使得它很难阅读。
提前感谢任何建议
马库斯