For CPU devices on Apple platform local memory can not be used when work group size is not [1;1;1]. If work group size is greater "Invalid Work Group Size" error is thrown. (Apple OpenCL implementation can sometimes reduce max work group size for other reasons.) When local memory is not used max work group size for CPU devices on Apple platform should be [1024;1;1].
| 60 | // When local memory is not used max work group size for CPU devices on Apple |
| 61 | // platform should be [1024;1;1]. |
| 62 | inline bool is_apple_cpu_device(const boost::compute::device &device) |
| 63 | { |
| 64 | return is_apple_device(device) && (device.type() & ::boost::compute::device::cpu); |
| 65 | } |
| 66 | |
| 67 | // On Apple devices clCreateBuffer does not return NULL and does no set error |
| 68 | // to CL_INVALID_BUFFER_SIZE when size of the buffer memory object is greater |
no test coverage detected