See: #2578 (review)
We should consider adding a helper function to the harness to get the maximum 1D work-group size at the very least. The maximum 1D work-group size would take into account CL_DEVICE_MAX_WORK_GROUP_SIZE, CL_DEVICE_MAX_WORK_ITEM_SIZES, and possibly CL_KERNEL_WORK_GROUP_SIZE when a kernel object is known.
We could consider adding a helper function for 2D and 3D work-group sizes, also, but I'm less sure how this would work.
Once we have added the new harness function, we should evaluate places where we are currently querying either CL_DEVICE_MAX_WORK_GROUP_SIZE, CL_DEVICE_MAX_WORK_ITEM_SIZES, and CL_KERNEL_WORK_GROUP_SIZE, and see if it would be more appropriate to use the helper function instead.