我的代码运行如下代码:
start[i]
我不确定我是否正确引用了全局数组q_space中的值。
我已经验证了循环正确地遍历了所有值,并且所有其他值都按预期进行了评估。
但是-当我添加引用q_space中的位置时,它返回错误的结果。
我一直在这里尽可能紧密地声明设备空间中的所有参数: https://github.com/HandsOnOpenCL/Exercises-Solutions/blob/master/Solutions/Exercise06/Python/matmul.py
__kernel void q_ij(
const int N,
__global float* q_array,
__global float* q_space)
{
int m;
int n;
int i = get_global_id(0);
int j = get_global_id(1);
float tmp_q = 0;
if ((i < N) && (j < N))
tmp_q = 0.0f;
for(m=j;m<i+1;m++)
{
for(n=0;n<j;n++)
{
tmp_q += q_space[m] * q_space[n]; \\I'm pretty sure this is where the issue is occuring
}
}
q_array[i*N + j] = (float) tmp_q;
}
}