在 Linux 上将 OpenCL 与英特尔超高清显卡结合使用

Using OpenCL with intel UHD graphics on Linux

我正在尝试在 Ubuntu 16.04 系统和 intel UHD 620 中使用 OpenCV 和目标 OpenCL 图形。我已经为 OpenCL 安装了 ocl-icd-opencl-dev,但是 cv::ocl::haveOpenCL() 告诉我我没有 OpenCL

clinfo 给我

Number of platforms                               0

然后我尝试按照 的建议安装 beignet。仍然 cv::ocl::haveOpenCL() 告诉我我没有 OpenCL 而现在 clinfo

Number of platforms                               1
Platform Name                                   Intel Gen OCL Driver
Platform Vendor                                 Intel
Platform Version                                OpenCL 1.2 beignet 1.1.1
Platform Profile                                FULL_PROFILE
Platform Extensions                             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_byte_addressable_store cl_khr_spir cl_khr_icd
Platform Extensions function suffix             Intel
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware

有人可以帮忙吗?

ocl-icd-opencl-dev 是 OCL-ICD 加载器的开发文件。如果您想针对 libOpenCL 进行开发(编译),您将需要它。如果你不想开发,只使用OpenCL程序,那么你只需要ocl-icd-libopencl1.

cv::ocl::haveOpenCL() tells me that I do not have OpenCL

ocl-icd 只是一个加载器;你需要一个实际的实现。 As explained on Khronos:

The OpenCL Installable Client Driver (ICD) is a mechanism to allow OpenCL implementations from multiple vendors to coexist on a system

Then I tried installing beignet

beignet 是一个实现,但它对您的 GPU 来说太旧了。您需要他们的专有实现,或者 Intel NEO.