OpenCL编译选项ATI vs NVIDIA

时间:2012-08-23 02:32:48

标签: opencl

我尝试运行的一个示例程序具有以下编译选项,如makefile。

ATISTREAMSDKROOT=/home/david/src/ati-stream-sdk-v2.0-lnx64
CC=gcc
CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I$(ATISTREAMSDKROOT)/include -L$(ATISTREAMSDKROOT)/lib/x86_64 -lglut -lOpenCL

但是我正在使用Nvidia的OpenCL实现,所以我要将选项改为这样。

CC=gcc
CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I ~/NVIDIA_GPU_Computing_SDK/OpenCL/common/inc/ -lglut -lOpenCL

你能告诉我它是否正确吗?顺便说一句,我找不到" -L"的正确路径。与ATI相对应的NVIDIA选项。

1 个答案:

答案 0 :(得分:1)

有些令人困惑的是,NVIDIA的GPU计算SDK根本不是一个SDK,它只是用CUDA和OpenCL编写的示例程序的集合。它不包含构建和运行OpenCL程序所需的必需头文件和库(同样适用于CUDA)。

您将在NVIDIA GPU计算工具包中找到您所需的内容,其发行版本包含其OpenCL标头。您的编译命令应该类似于:

CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall \
    -I PATH_TO_NVIDIA_TOOLKIT/include/CL -lglut -lOpenCL
如果您接受工具箱安装程序默认值,则

PATH_TO_NVIDIA_TOOLKIT将是/ usr / local / cuda。 NVIDIA OpenCL库在其驱动程序包中发布,libOpenCL.so应该以默认搜索路径结束,并且不需要显式搜索路径供链接器查找。