C++ 在OpenCL中为嵌入式配置文件创建设备上下文

C++ 在OpenCL中为嵌入式配置文件创建设备上下文,c++,opencl,fpga,C++,Opencl,Fpga,我能够通过以下操作在OpenCL中创建上下文和设备 using namespace cl; std::vector<Platform> platforms; Platform::get(&platforms); cl_context_properties properties[] = {CL_PLATFORM_NAME, (cl_context

我能够通过以下操作在OpenCL中创建上下文和设备

     using namespace cl;
     std::vector<Platform> platforms;
     Platform::get(&platforms);
     cl_context_properties properties[] = 
                        {CL_PLATFORM_NAME,
                      (cl_context_properties) (platforms.at(0))(),0};
            context = Context(CL_DEVICE_TYPE_ALL, properties);
            devices = context.getInfo<CL_CONTEXT_DEVICES>();
它与CPU和GPU设备配合良好。如果我对FPGA设备尝试同样的方法,我会在方法clCreateContextFromType中得到错误。上下文构造函数正在包装此方法


我应该如何为OpenCL设备(如具有嵌入式配置文件的FPGA)创建上下文和设备。

FPGA设备通常需要链接其他特定于供应商的OpenCL驱动程序库。要链接的库通常在供应商文档和/或示例中指定

对于Altera,可在其文档中找到:


对于OP提供的示例中的Xilinx:

我怀疑您没有链接特定于供应商的OpenCL驱动程序库。很难说,你的问题太宽泛了。这通常在供应商文件中规定。例如,对于@doqtor的Altera,您能否将其转换为答案?对于Xylinx来说也是如此,我找到了扩展的例子。我已经添加了一个答案。FPGA设备需要供应商特定的扩展吗?扩展通常用于供应商要求的功能,这些功能不属于OpenCL规范的一部分,或者不属于OpenCL规范,因为他们的设备与典型OpenCL设备的功能相差太大。