OpenCL在Win7下的安装与配置

1:在http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/根据相应的操作系统,下载最新的 AMD APP SDK。在AMD APP SDK目前支持Windows VISTA[32][64]bit,Windows 7[32][64]bit操作系统。

在http://support.amd.com/cn/gpudownload/windows/Pages/auto_detect.aspx下载AMD驱动安装程序,会检测系统的显卡,自动下载驱动

2:如果已经安装了低版本的 SDK,需要先进行卸载操作。然后,用户依次安装AMD driver和AMD APP SDK. AMD APP SDK目前支持VS2008和VS2010开发环境。在安装过程中会自动添加一部分环境变量。

3:在运行->cmd中键入clinfo,查看输出信息,如果所有计算设备都能找到,说明安装成功。

4.创建空的工程文件

  • 文件 -> 新建 -> 项目...
  • Visual C++ -> Win32 -> Win32控制台程序
  • 输入你的工程文件名

5.配置一些工程属性

  • Right click on the project-> "属性"
  • Select "所有配置" in [配置] at左上角
  • Configuration Porperties -> "C/C++" ->"常规" -> "附件包含目录"
  • 添加"$(AMDAPPSDKROOT)include"
  • Configuration Porperties ->"C/C++"->"预编译头" -> "附件依赖项"
  • 使用"不添加预编译头"
  • Configuration Porperties -> "链接器"->"常规"  -> "附件库目录"
  • 添加 "$(AMDAPPSDKROOT)lib\x86"
  • Configuration Porperties ->"链接器"->"输入" -> "附件依赖项"
  • 添加 "OpenCL.lib"

6.输出结果

补充

-------------------------------------------------------------

注释1:C语言头文件#include<unistd.h>的作用 unistd.h不是c语言的东西,是linux/unix的系统调用,包含了许多 U N I X系统服务的函数原型,例如 r e a d,w r i t e和getpid函数。 unistd.h在unix中类似于window中的windows.h!

#ifdef WIN32
#include <windows.h>

#else #include <unistd.h>
#endif

注释2:
浮点数不可能完全相等,因为寄存器的长度是有限制的,32bit和64bit,32位只能保留1位符号位,8位阶,23位尾数。64位为1位符号位,11位阶,52位尾数。所以浮点数不是精确的数(同理,double也是),一般来说,对于float x和float y,如果这两个浮点数相等,就是abs(x-y) < 0.000001这样判断一般是没有什么问题的。

 for(i = 0; i < count; i++)
    {
        if(abs(results[i] - data[i] * data[i] ))
            correct++;
    }

原文地址:https://www.cnblogs.com/lihao602/p/3067239.html