我正在尝试使用OpenCL2.0构建OpenCL内核。我正在调用cl :: Program构建函数,并传递标志-cl-std = CL2.0。 g ++编译器完成并且链接没有错误。但是,当我运行程序时,build函数会引发异常(请参见下文)。想看看是否有人以前见过此事并有解决方案。谢谢。
我尝试了其他标志,例如-cl-std = c ++ 11,-cl-std = CL2.2,但是这些都不起作用。
[20:03:47.768768][info][Demosaic] CL_FLAGS = -cl-std=CL2.0 -D IMAGE_MAD_INDEXING -D AMD_GPU_ARCH -D DEVICE_WAVEFRONT_SIZE=64 -D WG_SIZE_MAX=256
terminate called after throwing an instance of 'cl::BuildError'
[20:03:47.788335][error][Demosaic] Build failed: In file included from /tmp/OCL21460T1.cl:244:
/usr/include/CL/cl2.hpp:495:2: error: Visual studio 2013 or another C++11-supporting compiler required
#error Visual studio 2013 or another C++11-supporting compiler required
答案 0 :(得分:1)
cl2.hpp
是否不是应该用 host 代码而不是OpenCL内核代码#include
保存的文件?
我假设它检查__cplusplus
的值,如果我正确地读取the relevant section of the OpenCL C++ specification,则该值未在用于OpenCL内核的C ++语言中定义。