OpenCL在linux上编译

Umb*_*lla 5 nvidia opencl

我是OpenCL的新手.

从昨天起,我正在尝试使用OpenCL进行并行编程而不是CUDA,这对我来说比较熟悉并且以前经历过.

现在我有NVIDIA GTX 580 GPU,Ubuntu Linux 12.04操作系统和CUDA SDK 4.1(由于CUDA编程之前已安装).

在CUDA SDK文件夹中,已包含一些OpenCL头文件和库.

所以我刚从NVIDIA的开发者专区下载了OpenCL示例.(这是链接!https://developer.nvidia.com/opencl)

而且我试图自己编译一些例子,但我不能.

我使用-II添加了头文件的路径来制作Makefile,但我不知道如何添加库路径以及OpenCL库的名称是什么.

我在谷歌搜索但有人说文件名为libOpenCL.so,但我只有OpenCL.lib.

有人可以帮助我吗?

Gar*_*ree 7

安装

以下步骤已在Ubuntu 12.04上进行了测试.

  1. 下载适用于Linux 的英特尔SDK.
  2. 提取RPM:

    $ tar zxvf intel_sdk_for_ocl_applications_2012_x64.tgz
    
    Run Code Online (Sandbox Code Playgroud)
  3. 转换为.deb并安装:

    $ fakeroot alien --to-deb intel_ocl_sdk_2012_x64.rpm
    $ sudo dpkg -i intel-ocl-sdk_2.0-31361_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)
  4. 确保已将libOpenCL.so安装到/ usr/lib /.

    $ sudo ln -s /usr/lib64/libOpenCL.so /usr/lib/libOpenCL.so
    $ sudo ldconfig
    
    Run Code Online (Sandbox Code Playgroud)

只需在编译期间链接到OpenCL库:

$ g++ main.cpp -lOpenCL
$ ./a.out
Run Code Online (Sandbox Code Playgroud)