尝试编译测试OpenCL ICD驱动程序:Linux(ubuntu 12.04)上的http://www.khronos.org/registry/cl/specs/opencl-icd-1.2.11.0.tgz。
按照自述文件进行构建:
wget http://www.khronos.org/registry/cl/specs/opencl-icd-1.2.11.0.tgz
tar xvf opencl-icd-1.2.11.0.tgz
cd icd/inc
mkdir CL
cd CL
cp /usr/include/CL/* .
cd ../..
make
但是make抛出错误,例如:
In file included from icd.c:42:0:
icd_dispatch.h:105:5: error: unknown type name 'cl_device_partition_property'
icd_dispatch.h:111:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CL_API_SUFFIX__VERSION_1_2'
icd_dispatch.h:114:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CL_API_SUFFIX__VERSION_1_2'
icd_dispatch.h:177:5: error: unknown type name 'cl_image_desc'
...
看起来cl_device_partition_property应该引用opencl头文件〜/ icd / inc / CL / cl_ext.h,但是由于某种原因没有选择它。有什么建议?
最佳答案
看起来您正在使用OpenCL 1.1标头,而正在构建的ICD是针对1.2的。 cl_device_partition_property
和cl_image_desc
类型在cl.h
中定义,但仅在OpenCL 1.2中添加。
您可以从Khronos OpenCL Registry下载OpenCL 1.2标头。
关于c - 在Linux上编译OpenCL ICD加载器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23077874/