OpenCL: core support for FP16, more channel orders
authorJoe Howse <josephhowse@nummist.com>
Mon, 21 Jun 2021 03:46:32 +0000 (00:46 -0300)
committerJoe Howse <josephhowse@nummist.com>
Wed, 30 Jun 2021 17:14:37 +0000 (14:14 -0300)
commit6a3d925a47d54945eab7b50a769531703cde99a2
treee230857a5e7df9056b3a08e24ae03be0e6542b70
parent735a79ae8305cd24c064e1719c197c2092611765
OpenCL: core support for FP16, more channel orders

* Support cl_image conversion for CL_HALF_FLOAT (float16)

* Support cl_image conversion for additional channel orders:
  CL_A, CL_INTENSITY, CL_LUMINANCE, CL_RG, CL_RA

* Comment on why cl_image conversion is unsupported for CL_RGB

* Predict optimal vector width for float16

* ocl::kernelToStr: support float16

* ocl::Device::halfFPConfig: drop artificial requirement for OpenCL
  version >= 1.2. Even OpenCL 1.0 supports the underlying config
  property, CL_DEVICE_HALF_FP_CONFIG.

* dumpOpenCLInformation: provide info on OpenCL half-float support
  and preferred half-float vector width

* randu: support default range [-1.0, 1.0] for float16

* TestBase::warmup: support float16
modules/core/include/opencv2/core/opencl/opencl_info.hpp
modules/core/src/ocl.cpp
modules/ts/src/ocl_perf.cpp
modules/ts/src/ts_perf.cpp