首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确设置OpenCL?

如何正确设置OpenCL?
EN

Stack Overflow用户
提问于 2018-06-19 01:37:30
回答 1查看 1.2K关注 0票数 1

规格

  • Windows10 64位
  • 英特尔酷睿i7
  • Amd Radeon R9
  • 6.8.0出自mingw

设置

我从这里下载了OpenCL:https://software.intel.com/en-us/intel-opencl/download。我首先尝试了AMD for OpenCL,但我尝试的所有页面都显示"404页未找到“。

这是我用来测试OpenCL的代码。

opencl.c

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
#include <CL/cl.h>

int main() {
    cl_device_id device_id;
    cl_uint num_devices;

    cl_int id = clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device_id, &num_devices);

    return 0;
}

我尝试用编译这段代码。

代码语言:javascript
复制
gcc opencl.c -I C:\Intel\OpenCL\sdk\include -L C:\Intel\OpenCL\sdk\lib\x64 -o opencl.exe

但是我得到了这个错误。

代码语言:javascript
复制
undefined reference to `clGetDeviceIDs@24'

如果我用clGetDeviceIDs函数删除这一行,它编译得很好。

-lOpenCL

我也尝试过编译,

代码语言:javascript
复制
gcc opencl.c -I C:\Intel\OpenCL\sdk\include -lOpenCL -o opencl.exe

但上面说..。

代码语言:javascript
复制
cannot find -lOpenCL

我在某处读到,当您下载OpenCL驱动程序时,会生成-lOpenCL。因此,我尝试在这里下载驱动程序:https://support.amd.com/en-us/kb-articles/Pages/OpenCL2-Driver.aspx。我安装了驱动程序,然后运行了安装程序,但它说它没有检测到任何AMD图形硬件。

编辑

我将-L C:\Intel\OpenCL\sdk\lib\x64更改为-L C:\Intel\OpenCL\sdk\lib\x86,并使用

gcc opencl.c -I C:\Intel\OpenCL\sdk\include -L C:\Intel\OpenCL\sdk\lib\x86 -lOpenCL -o opencl.exe,它成功了吗?因此,我检查了我的系统设置,以确保我的Windows 64位,它显示

64-bit operating system, x64-based processor。那么,我是不是安装了错误的OpenCL版本?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 03:22:36

选择使用32位二进制(x86)还是64位二进制(x64)是基于应用程序的目标体系结构,而不是基于编译程序的计算机的体系结构。库的x86版本可以工作而x64版本不能工作的原因是您的编译器是以32位模式编译的。切换到在x64中编译,以获得正确链接的x64库。

我对gcc不是非常熟悉,所以我不知道是什么标志控制了这种行为。检查您的编译器文档。请注意,编译器本身是32位还是64位应该是无关紧要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50914797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档