内存检查器检测到1次访问冲突。错误=加载时访问冲突(全局内存)

时间:2013-04-10 08:27:55

标签: cuda

当我调试我的代码时,当光标转到时出现此错误:
scoreMatrix[0] = dev_matrix[a]+similarityScore(dev_strA[a-1],dev_strB[b-1]);
并反复显示为scoreMatrix[1], scoreMatrix[2], scoreMatrix[3]

__global__ void kernel_ScoreMatrix(char *dev_strA, char *dev_strB, int *dev_matrix, int *dev_array, int *array_length)
{
int x= blockIdx.x;
int y=blockIdx.y;
int m = COLUMNS*y + x;

for (int i=0; i<*(array_length); i++)
    if (m==dev_array[i]){

int a = COLUMNS*(y-1) + (x-1);
int b= COLUMNS*(y-1) + (x);
int c= COLUMNS*(y) + (x-1);

int scoreMatrix[4];

scoreMatrix[0] = dev_matrix[a]+similarityScore(dev_strA[a-1],dev_strB[b-1]);
scoreMatrix[1] = dev_matrix[b]+GAP;
scoreMatrix[2] = dev_matrix[c]+GAP;
scoreMatrix[3] = 0;
dev_matrix[m] = findMax(scoreMatrix,4);
    }
}
这是一张问题图片。

enter image description here

1 个答案:

答案 0 :(得分:2)

变量a的值等于零,因此语句dev_strA[a-1]会导致访问冲突。