複数のスレッドで実行したいメソッドがありますが、各スレッドは異なる数の結果を返します。プライベートなスレッド固有の変数、つまりホストに戻してすべての結果をマージできるリストを宣言することは可能ですか?
次のような配列があるとします。
int[,] arr1 = new int[3,3] {{ 3, 4, 5 }, {4, 5, 6}, {1, 6, 4}};
int[] arr2 = new int[] { 3, 4, 1 };
各スレッドには、分析する 3 つの値が与えられ、arr2 の値と arr1 の特定の行の値の差が記録されます。
[Cudafy]
public static void CountAbove(GThread thread, int[] a, int[,] b, list<int> c)
{
int tid = thread.blockIdx.x;
int threshold = a[tid];
for(int i = 0; i < b.GetLength(0); i++)
{
if (threshold < b[tid,i]) c.add(b[tid,i] - threshold);
}
}