Fp16 api

The OpenCL standard treats half as a very special type; essentially, only half* is possible. Whether this is supported is indicated via cl_khr_fp16. I don't know what you mean by "per standard it should be supported" -- OpenCL does not require that half* is supported.