我在核函数中将全局内存赋值给共享内存进行使用,最后结果不正确,请问是赋值过程有问题还是使用过程有问题?
void __global__ kernel1(int i,float* d_M1, int* d_H, int* d_V, float* d_E1, float* d_E)
{
const int n = blockDim.x * blockIdx.x + threadIdx.x;
if (n < 2500)
{
extern __shared__ int s_H[];
d_H[i * 2500 + n] = 1;
s_H[threadIdx.x] = d_H[i*2500+n];
for (int j = 0; j < 12; j++)
{
s_H[i * 2500 + n] *= d_V[(i * 2500 + n) * 12 + j];
}
for (int j = 0; j < 12; j++)
{
d_E[(i * 2500 + n) * 12 + j] = (-log(d_E1[i * 2500 + n]) - (-log(d_M1[(i * 2500 + n) * 12 + j]) / 2)) * s_H[i * 2500 + n];
}
}
}