你可以在不下载SDK的情况下开始编程OpenCL吗?

时间:2011-06-08 23:17:09

标签: c++ opencl

我正在尝试获得一个可以在ATI和NVidia上运行的程序,因此,我想避免使用任何一个SDK。是否可以在没有SDK的情况下使用VS2010和Windows(XP或7)?

如果是这样,我该如何配置VS2010 Linker以使其正常工作?

3 个答案:

答案 0 :(得分:10)

严格来说,不需要SDK。事实上,不需要SDK,因为NVIDIA和AMD / ATI SDK都将代码绑定到他们的环境,并且扩展了他们的硬件。你需要的是:

1)将运行OpenCL代码的GPU。请参阅此问题:List of OpenCl Compliant CPU/GPU

2)OpenCL库(Linux上的libOpenCL.so);这通常包含在图形驱动程序中并与之一起安装,可以从AMD或NVIDIA下载。

3)OpenCL头文件。这些可以从Khronos.org获得,但包含在我所知道的所有OpenCL SDK中。在Linux系统上,这些通常位于/ usr / include / CL

目录中

NVIDIA和AMD SDK提供了许多实用程序和包装器,可以更轻松地使用OpenCL API,但它们不是编写OpenCL代码或进行API调用所必需的。这些包装器和实用程序不是poratble。如果您对编写可移植代码感兴趣,请坚持使用Khronos.org提供的OpenCL规范。

要编写代码,您需要做的就是在宿主程序中包含opencl.h,然后进行设置OpenCL环境和运行OpenCL程序所需的API调用。另外,不要忘记链接OpenCL库(在Linux下给gcc -lOpenCL标志)。

答案 1 :(得分:2)

OpenCL是一个标准。它只定义了约定。要使用它,您需要一个用于图形卡的驱动程序。 NVidia,AMD(ATI)和Apple都提供此类驱动程序。你肯定需要一个SDK。

答案 2 :(得分:1)

@virtuallinux提到正确答案:如果您担心意外使用某些特定于供应商的扩展程序,请获取Khronos SDK。