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++;
}