使用CL / cl.h文件编译OpenCL程序

时间:2014-01-23 07:27:09

标签: opencl gpu gpu-programming

我有样品“Hello,World!”来自网络的代码,我想在我大学的服务器上的GPU上运行它。当我输入“gcc main.c”时,它会响应:

  

CL / cl.h:没有这样的文件或目录

我该怎么办?我怎么能有这个头文件?

3 个答案:

答案 0 :(得分:19)

确保安装了相应的工具包。

这取决于您打算运行代码的内容。如果您有NVidia卡,则需要下载并安装CUDA-toolkit,其中还包含opencl所需的二进制文件和库。

你在运行Linux吗?如果您认为已安装OpenCL,则可能是在与标准/ usr / include不同的位置找到它。输入以下内容,看看你得到了什么结果:

find / -iname cl.h 2>/dev/null

例如,在我的笔记本电脑上,标题位于/usr/local/cuda-5.5/include。如果它的情况是您的头文件位于不同的位置,您只需在复杂化期间指定路径

g++ -I/usr/local/cuda-5.5/include main.c -lOpenCL

或者,您可以从/usr/include

的路径创建符号链接
ln -s /usr/local/cuda-5.5/include/CL /usr/include

答案 1 :(得分:13)

您使用的是Ubuntu还是Debian发行版?然后你可以使用这个包来解决缺少头文件的问题:

apt-get install opencl-headers

您必须安装opencl库才能使用DebianUbuntu包解决链接问题:

apt-get install ocl-icd-libopencl1

您还可以使用这些 nonfree 库:nvidia-libopencl1(Debian)或nvidia-libopencl1-xx(Ubuntu)。

答案 2 :(得分:-2)

编译main.c时,请确保包含cl.h头文件的路径。如果您需要更多详细信息,请使用Google并搜索包含gcc的标题。