curandGenerateNormalDouble is crashing

Is there any limitation of the curandGenerateNormal( curandGenerator_t generator, float *outputPtr, size_t n, float mean, float stddev) function?

The curandGenerateNormal is called multiple times through a loop, when the size of the size_t n parameter is increased to bigger one, the function call started to crash after it has been called a few times through the loop

Any ideas?

Thanks

Is there any limitation of the curandGenerateNormal( curandGenerator_t generator, float *outputPtr, size_t n, float mean, float stddev) function?

The curandGenerateNormal is called multiple times through a loop, when the size of the size_t n parameter is increased to bigger one, the function call started to crash after it has been called a few times through the loop

Any ideas?

Thanks

also, is it possible to see the detailed message why the function call is crashing?

Thanks

also, is it possible to see the detailed message why the function call is crashing?

Thanks

The GenerateUniformDouble function runs okey inside the loop but we need curandGenerateNormalDouble to produce the number between 0 and 1.

Please help.

The GenerateUniformDouble function runs okey inside the loop but we need curandGenerateNormalDouble to produce the number between 0 and 1.

Please help.

What is the exact symptom you’re seeing when this crash occurs? It’s possible that the CUDA kernel launched by CURAND is timing out. What operating system are you using?

Thanks,

Cliff

What is the exact symptom you’re seeing when this crash occurs? It’s possible that the CUDA kernel launched by CURAND is timing out. What operating system are you using?

Thanks,

Cliff

Hi, thanks for the reply.

In the code below, the call to curandGenerateNormalDouble is failing as it is not returning the Success status.
If I change the 125000 to a smaller value, it runs okey. Is there a limitation of the curandGenerateNormalDouble function.
If I use curandGenerateUniformDouble, it runs okey.

If it is timeout, how could it fix it?

Thanks

cudaResult = cudaMalloc((void **)&data, 125000 * sizeof(double));
for (unsigned int i = 0; i <= 1000000 ; i++)
{
curandResult = curandGenerateNormalDouble(gen, data, 125000, mean, stddev); #
}

Hi, thanks for the reply.

In the code below, the call to curandGenerateNormalDouble is failing as it is not returning the Success status.
If I change the 125000 to a smaller value, it runs okey. Is there a limitation of the curandGenerateNormalDouble function.
If I use curandGenerateUniformDouble, it runs okey.

If it is timeout, how could it fix it?

Thanks

cudaResult = cudaMalloc((void **)&data, 125000 * sizeof(double));
for (unsigned int i = 0; i <= 1000000 ; i++)
{
curandResult = curandGenerateNormalDouble(gen, data, 125000, mean, stddev); #
}

The NVIDIA GTX295 is running on windows 2008 server.

The NVIDIA GTX295 is running on windows 2008 server.

What is the value of curandResult (when it is something other than success)?

You would recognize a timeout (on Windows Vista and later, including your Windows 2008) by way of a little message box popping up in the lower-right corner of your screen saying that your “display driver stopped responding and has recovered”. If that’s what you’re getting, see http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx for details on how to adjust the timeout period.

–Cliff

What is the value of curandResult (when it is something other than success)?

You would recognize a timeout (on Windows Vista and later, including your Windows 2008) by way of a little message box popping up in the lower-right corner of your screen saying that your “display driver stopped responding and has recovered”. If that’s what you’re getting, see http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx for details on how to adjust the timeout period.

–Cliff

Hi Cliff,

it is not a timeout as we did not see the pop-up message when it failed.

The return code is CURAND_STATUS_LAUNCH_FAILURE when it failes.

What could be the reason?

Thanks

Hi Cliff,

it is not a timeout as we did not see the pop-up message when it failed.

The return code is CURAND_STATUS_LAUNCH_FAILURE when it failes.

What could be the reason?

Thanks

Hi, further test shows that the random generator function does like to run on the the GPU used as default display.

When I run the same code on the second GPU of our GTX 295 card, it works fine. If it runs on the first one, it fails.

Any ideas?

Thanks

Hi, further test shows that the random generator function does like to run on the the GPU used as default display.

When I run the same code on the second GPU of our GTX 295 card, it works fine. If it runs on the first one, it fails.

Any ideas?

Thanks