Cuda-memcheck can't report the invalid write

I set a simple example in my code that writting in the invalid location to test cuda-memcheck. But it doesn’t seem to work. Is there any mistake in my approach?

__global__ void write_out_of_bound(int *dev_array, const int len) {
    int tid = threadIdx.x;
    if(tid < len) {
         dev_array[tid] = tid;
    }    
}

int main(int argc, char **argv)
{
    int *dev_array;
    cudaMalloc((void**)&dev_array, sizeof(int) * 64);
    write_out_of_bound<<<1, 128>>>(dev_array, 128);
    CHECK(cudaDeviceSynchronize());
}

The command line:
nvcc -g -G test.cu -o test
cuda-memcheck ./test

My device information is as follows:

Compute Sanitizer has replaced cuda-memcheck for memory checking. Can you try using compute sanitizer with a command like " compute-sanitizer --tool memcheck ./test"

1 Like

Thanks a lot!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.