No half precision with OpenCL on Nvidia GTX 1080Ti and Titan V

I try to use half precision (fp16) with OpenCL (calculation, not only storage) on my GTX 1080 and my Titan V graphic cards for a self written program in C language. The specifications says that this should be possible, but it isn’t. The device extension “cl_khr_fp16” is not listed for both devices. Enabeling it with pragma is not possible. Compilation of the same program with 32 or 64 bit fp precision is possible and the program works fine. Using the same program for fp16 storage only (calculation with fp32) works also fine. Please see screen output below. System: openSuSE 15.0, Compiler: gcc 7.4.1, processor: Intel Core i3-2120T CPU @ 2.60GHz, NVIDIA Linux Driver 440.64

Screen output (only relevant parts):

[…]

Info: Supported extensiond: cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store
cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options
cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts
cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics

Info: supported OpenCL Version:: OpenCL 1.2 CUDA

Compiler output:

ERROR: Failed to build program (-11). Error messeage:
:4:26: warning: cannot enable cl_khr_fp_16 extension on this platform

  • ignoring.
    #pragma OPENCL EXTENSION cl_khr_fp16 : enable
    ^
    :97:11: error: unknown type name ‘half8’
    typedef half8 DTWCALCREAL8;
    ^
    :5475:12: error: no matching function for call to ‘vstore8’
    vstore8( regs2, i1, (__global DTWCALCREAL*) splineinterp_new );
    ^~~~~~~

[…]

1 Like