I seem to have figured it out. It seems that depending upon the value that I divide my local args, the program will run perfectly at some times and then will not on others. I had divided my local args appropriately such that it was exactly what CL_KERNEL_WORK_GROUP_SIZE specified. But it does not work at that amount. By dividing the local work group size by larger values, it worked perfectly. I'm not sure why the work group information gave me an invalid size however. It seems that perhaps the product of my local range must be less then what CL_KERNEL_WORK_GROUP_SIZE specified. I could be wrong with this.