The launch timed out and was terminated

Hello! I using code from book CUDA-By-Example-master (chapter 4):

#include "../common/book.h"
#include "../common/cpu_bitmap.h"

#define DIM 1000

struct cuComplex {
	float   r;
	float   i;
	__device__ cuComplex(float a, float b) : r(a), i(b) {}
	__device__ float magnitude2(void) {
		return r * r + i * i;
	}
	__device__ cuComplex operator*(const cuComplex& a) {
		return cuComplex(r*a.r - i * a.i, i*a.r + r * a.i);
	}
	__device__ cuComplex operator+(const cuComplex& a) {
		return cuComplex(r + a.r, i + a.i);
	}
};

__device__ int julia(int x, int y) {
	const float scale = 1.5;
	float jx = scale * (float)(DIM / 2 - x) / (DIM / 2);
	float jy = scale * (float)(DIM / 2 - y) / (DIM / 2);

	cuComplex c(-0.8, 0.156);
	cuComplex a(jx, jy);

	int i = 0;
	for (i = 0; i < 200; i++) {
		a = a * a + c;
		if (a.magnitude2() > 1000)
			return 0;
	}

	return 1;
}

__global__ void kernel(unsigned char *ptr) {
	// map from blockIdx to pixel position
	int x = blockIdx.x;
	int y = blockIdx.y;
	int offset = x + y * gridDim.x;

	// now calculate the value at that position
	int juliaValue = julia(x, y);
	ptr[offset * 4 + 0] = 255 * juliaValue;
	ptr[offset * 4 + 1] = 0;
	ptr[offset * 4 + 2] = 0;
	ptr[offset * 4 + 3] = 255;
}

// globals needed by the update routine
struct DataBlock {
	unsigned char   *dev_bitmap;
};

int main(void) {
	DataBlock   data;
	CPUBitmap bitmap(DIM, DIM, &data);
	unsigned char    *dev_bitmap;

	HANDLE_ERROR(cudaMalloc((void**)&dev_bitmap, bitmap.image_size()));
	data.dev_bitmap = dev_bitmap;

	dim3    grid(DIM, DIM);
	kernel <<<grid, 1 >>> (dev_bitmap);

	HANDLE_ERROR(cudaMemcpy(bitmap.get_ptr(), dev_bitmap,
		bitmap.image_size(),
		cudaMemcpyDeviceToHost)); // line 87

	HANDLE_ERROR(cudaFree(dev_bitmap));

	bitmap.display_and_exit();
}

But i am getting error in console: the launch timed out and was terminated in D:/jul_cpu/jul_cpu/kernel.cu at line 87.
What I should do?

When posting code here, I suggest proper formatting. When editing, select your code, then press the </> button at the top of the edit window.

Regarding your question, my suggestion would be to learn about the windows timeout mechanism. You can start here. This is a common topic on many forums. You’ll need to either bypass the timeout, or reduce the runtime of your kernel. Since compiling a debug project often makes kernel code take longer to run, you may get some benefit by switching from a debug to a release project.

You can change
const float scale = 2.5; // 2.5, 3.5 e.t.c

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