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

Cuda 内存检查器检测到1个访问冲突。错误=加载时访问冲突(全局内存),cuda,Cuda,调试代码时,光标转到时显示此错误: scoreMatrix[0]=开发矩阵[a]+相似性得分(开发战略[a-1],开发战略数据库[b-1])并为记分矩阵[1]、记分矩阵[2]、记分矩阵[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=bloc

调试代码时,光标转到时显示此错误:
scoreMatrix[0]=开发矩阵[a]+相似性得分(开发战略[a-1],开发战略数据库[b-1])
并为
记分矩阵[1]、记分矩阵[2]、记分矩阵[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);
    }
}
\uuuuu全局\uuuuuu无效内核\uScoreMatrix(char*dev\u strA,char*dev\u strB,int*dev\u矩阵,int*dev\u数组,int*array\u长度)
{
int x=blockIdx.x;
int y=块idx.y;
int m=列*y+x;

对于(int i=0;i变量
a
的值等于零,因此语句
dev_strA[a-1]
导致访问冲突