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

san*_*dra 18 gpu opencl gpu-programming

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

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

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

Mic*_*ina 19

确保安装了适当的工具包.

这取决于您打算运行代码的内容.如果你有一张NVidia卡,那么你需要下载并安装CUDA-toolkit,它还包含opencl所需的二进制文件和库.

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

find / -iname cl.h 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

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

g++ -I/usr/local/cuda-5.5/include main.c -lOpenCL
Run Code Online (Sandbox Code Playgroud)

或者,您可以从以下路径创建符号链接/usr/include:

ln -s /usr/local/cuda-5.5/include/CL /usr/include
Run Code Online (Sandbox Code Playgroud)


Osc*_*cia 14

你在使用UbuntuDebian发行版吗?然后你可以使用这个包解决丢失头文件的问题:

apt-get install opencl-headers
Run Code Online (Sandbox Code Playgroud)

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

apt-get install ocl-icd-libopencl1
Run Code Online (Sandbox Code Playgroud)

您还可以使用这些非自由库:( nvidia-libopencl1Debian)或nvidia-libopencl1-xx(Ubuntu).