大侠请帮我看看。winxp下

// 这个函数确保data 的值在0~255之间
device void ClipByte(short *data)
{
*data = (*data) < 0 ? 0 : ((*data) > 255 ? 255 : (*data));
}

global static void GPU_YUV2RGB(BYTE *Y, BYTE *Cb, BYTE *Cr, BYTE *RGBbuf, int width, int height)
{
int i, j, k;
for(i=0, k=height-1; i<width, k>=0; i++, k–)
{
for(j=0; j<width; j++)
{
int w = (i / 2) * (width / 2) + j / 2;
short temp = -1;
int index_y = i * width + j;
int index_buf = k * width * 3 + j * 3;

// B通道
temp = Y[index_y] + 1.779 * (Cb[w] - 128);
ClipByte(&temp);
RGBbuf[index_buf] = temp;

// G通道
temp = Y[index_y] - 0.3456 * (Cb[w] - 128) - 0.7169 * (Cr[w] -128);
ClipByte(&temp);
RGBbuf(index_buf + 1) = temp;

// R通道
temp = Y[index_y] + 1.4075 * (cR[w] - 128);
ClipByte(&temp);
RGBbuf[index_buf + 2] = temp;
}
}
}
// 上面这个函数主要是想在GPU上实现YUV到RGB的转换.该算法的CPU版本运行良好.
现在问题是我一调用这个GPU版本的内核函数:
GPU_YUV2RGB<<<1, 1, 0>>>(gpu_Y, gpu_Cb, gpu_Cr, gpu_RGB, width, height);

cudaError_t err = cudaMemcpy(RGBbuf, gpu_RGB, sizeof(BYTE)*size, cudaMemcpyDevicetoHost);
拷贝出转换结果
程序运行到这一句的时候, err返回 cudaErrLaunchFailure.
前面的内存分配和拷贝都没问题 ,都返回了cudaSuccess
请大侠帮我看一下问题出在哪里??
这里还没有做并行计算,只是做一个简单的内核调用