access violation on store randomly recurring
Hi Forum,
My program randomly fails and the problem is reported by parallel nsight as:
[code]
Parallel Nsight Debug
Memory Checker detected 1 access violations.
error = access violation on store (global memory)
blockIdx = {1390,0,0}
threadIdx = {32,0,0}
address = 0x00000000
accessSize = 4
[/code]
pointing to a line of code:
[code]
result[k] ^= matrix[n * (i * 32 + j) + k];
[/code]
which resides in the curand_kernel.h file that I never touch at all.

What's your opinion about this problem?

Three additional notes:

1. I reinstalled the driver and toolkit and even VS 2010 but the problem still recurs on and off. [b](I get correct result when this problem temporarily doesn't happen).[/b]

2. the same seed, sequence and offset are used to initialize the RNG.

3.
In my program, the argument of the kernel is composed of a number of arrays, so I choose to pack them into a structure:
[code]
struct DevicePlan
{
curandState* fooState;
float* fooFloat;
double* foo1;
...
double* fooN;
}
[/code]

After memory allocation, struct is passed by value to the kernel. Does this problem have anything to do with misalignment? /confused.gif' class='bbc_emoticon' alt=':confused:' />

Thanks for any help!
Hi Forum,

My program randomly fails and the problem is reported by parallel nsight as:



Parallel Nsight Debug

Memory Checker detected 1 access violations.

error = access violation on store (global memory)

blockIdx = {1390,0,0}

threadIdx = {32,0,0}

address = 0x00000000

accessSize = 4


pointing to a line of code:



result[k] ^= matrix[n * (i * 32 + j) + k];


which resides in the curand_kernel.h file that I never touch at all.



What's your opinion about this problem?



Three additional notes:



1. I reinstalled the driver and toolkit and even VS 2010 but the problem still recurs on and off. (I get correct result when this problem temporarily doesn't happen).



2. the same seed, sequence and offset are used to initialize the RNG.



3.

In my program, the argument of the kernel is composed of a number of arrays, so I choose to pack them into a structure:



struct DevicePlan

{

curandState* fooState;

float* fooFloat;

double* foo1;

...

double* fooN;

}




After memory allocation, struct is passed by value to the kernel. Does this problem have anything to do with misalignment? /confused.gif' class='bbc_emoticon' alt=':confused:' />



Thanks for any help!

#1
Posted 05/01/2012 03:02 AM   
Scroll To Top