I have a parallel reduction kernel that computes an images min and max. The calling C code cudaMallocs memory space for the min and max reductions and those pointers are used in the CUDA code. If I execute the kernel from the C program, it works fine. If I execute the kernel from a program that is getting a PBO from an OpenGL graphics context, the kernel can not access the cudaMalloc’ed pointers. I get an access violation error. If I modify the kernel to use globally declared device arrays, it works fine. Why can I not access the cudaMalloc’ed memory from the kernel when it is called from within an OpenGL context? I have no problem accessing the PBO.