0

我正在尝试使用英特尔内核构建器。我安装了 intel opencl sdk 并执行程序。像这样输入简单的代码。

__kernel void hello(__global int* a, __global int* b, __global int* c) {
  int gid = get_global_id(0);
  c[gid] = a[gid] + b[gid];
}

我按下了编译或构建按钮,但它显示了一个错误。错误信息是。

使用默认指令集架构。无法为 Intel OpenCL CPU 设备创建上下文...编译失败!

我发现有人遇到了类似的问题。 http://software.intel.com/en-us/forums/topic/392622 但是这个问题没有正确的答案。

我认为代码不是这个的主要问题。所以我删除了代码,只保留一个字符,然后编译它。错误信息与之前相同。我不知道这是怎么回事。

我的环境是 Windows7 Professional 64bits,intel Core2 Quad Q8200,支持 SSE4.1,OpenCL-1.2-3.0.67279 intel_sdk_2013_x64,kernel builder version 3.0.0.1。而且我从来没有在这台机器上运行过 OpenCL。我试过但发生编译错误。错误消息类似。他们未能创建上下文。该代码可能没有问题,因为我已经在另一台机器和操作系统(linux)上运行它。

如果有人使用这个程序,请帮助我。提前致谢。

4

1 回答 1

0

根据该站点,英特尔的 OpenCL SDK 不支持 Core2 Duo/Quad CPU(因为它们不支持 SSe 4.2): http: //software.intel.com/en-us/articles/intel-sdk-for-opencl- applications-2013-release-notes#_System_Requirements_1

因此编译器无法为此设备创建上下文。您可以通过在选项对话框中明确选择目标体系结构来解决此问题。我不确定这是否可行,并且代码肯定不会运行。

如果您想在您的机器上使用 OpenCL,请尝试 AMD APP SDK,它支持至少具有 SSE2 的每个 x86:http: //developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app -SDK/

但是,这不适用于英特尔的 KernelBuilder。

于 2013-09-11T10:27:07.593 回答