CLBlast: Incompatibility with the last Intel NEO drivers

I am using CLBlast on a bunch of Ubuntu 18 machines. I am using a manual installation, not the Ubuntu packages.

Everything was working fine for weeks, then I have updated the NEO drivers and it’s now crashing with the following error (same for Axpy, Gemv, Gemm, etc):

OpenCL compiler error/warning:
In file included from <built-in>:2:
CTHeader.h:6913:7: error: use of type 'intel_sub_group_avc_mce_payload_t' requires cl_intel_device_side_avc_motion_estimation extension to be enabled
      intel_sub_group_avc_mce_payload_t payload );

(the error appears many times with different line and column numbers)

Previous version:

Device Version    OpenCL 2.1 NEO
Driver Version    19.05.12254
Device OpenCL C Version    OpenCL C 2.0

Current version:

Device Version    OpenCL 2.1 NEO 
Driver Version    19.16.12873
Device OpenCL C Version    OpenCL C 2.0

Also, the extension cl_intel_device_side_avc_motion_estimation seems to be there (though reported as missing):

Device Extensions cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_depth_images cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator cl_intel_media_block_io cl_intel_driver_diagnostics cl_intel_device_side_avc_motion_estimation cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_khr_fp64 cl_khr_subgroups cl_khr_il_program cl_intel_spirv_device_side_avc_motion_estimation cl_intel_spirv_media_block_io cl_intel_spirv_subgroups cl_khr_spirv_no_integer_wrap_decoration cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_intel_planar_yuv cl_intel_packed_yuv cl_intel_motion_estimation cl_intel_advanced_motion_estimation cl_intel_va_api_media_sharing 

If there is a way to disable subgroups while waiting for this issue to be addressed, please let me know.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 20 (8 by maintainers)

Most upvoted comments

Hi, just for your information: the confusing error message when -cl-std=CL1.1 was used has been fixed in igc-1.0.7 release. Thank you for reporting this.

We can close the issue when the patch is merged

@CNugteren you need to add in kernel code:

#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : enable

As IGC compiler switched from llvm 4 to llvm 7, newer clang requires this pragma.