- 軟件大小:105.00M
- 軟件語言:中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費軟件 / 編程工具
- 更新時間:2017-06-29 14:46
- 運行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級:
- 軟件廠商:
- 官方網(wǎng)站:暫無
5.51M/中文/5.0
32.59M/英文/10.0
96.24M/中文/10.0
6.41M/中文/10.0
6.06M/中文/10.0
AMD APP SDK是一組高級的軟硬件技術。這款軟件能夠使圖形處理器(AMDGPU)和系統(tǒng)的x86內(nèi)核(CPU)共同協(xié)作。幫助用戶快而高效的完成任務。歡迎選哦的用戶來下載使用。
AMD APP,是AMD Accelerated Parallel Processing的縮寫。中文譯作AMD加速并行處理技術。是AMD針對旗下圖形處理器(GPU)所推出的通用并行計算技術。利用這種技術可以充分發(fā)揮AMD GPU的并行運算能力,用于對軟件進行加速運算或進行大型的科學運算。AMD APP技術的前身稱作ATI Stream。2010年10月,隨著AMD Radeon HD6800系列顯卡的發(fā)布,ATI品牌正式被AMD取代。ATI Stream技術也隨著技術升級并更名為AMD APP技術。AMD APP的競爭對手是nVIDIA CUDA。(來自百度百科)
AMD最近發(fā)布了支持最新的OpenCL 2.0標準的最新通用計算開發(fā)包AMD APP SDK 3.0。這標志著異構計算發(fā)展道路上的一個新的里程碑。OpenCL 2.0實施了很多AMD所倡導的新的異構系統(tǒng)架構。值得注意的是,GPU和CPU設備之間的數(shù)據(jù)結構指針內(nèi)存共享的概念可以大大地簡化GPU參與加速計算的步驟。比起利用OpenCL 1.2,GPU設備利用了OpenCL 2.0排隊功能進行計算任務,為計算內(nèi)核提供了一種更加強悍的編程模型。OpenCL 1.2的通用地址空間是一個強大的編程優(yōu)勢,但是OpenCL 2.0 引用了一種新的內(nèi)存對象,叫Pipe,這個在采用FIFO機制進行數(shù)據(jù)采集時起到重要的作用。OpenCL的這些還有其他優(yōu)勢將會幫助你利用現(xiàn)代異構系統(tǒng)性能的巨大潛力。
安裝過程,我們一般選擇默認路徑就行,直接點下一步完成安裝。如果選擇默認自動安裝,那么會自動生成變量
AMDAPPSDKROOT=C:\Program Files\AMD APP SDK\3.0-0-Beta\(32位機)
AMDAPPSDKROOT=C:\Program Files(x86)\AMD APP SDK\3.0-0-Beta\(64位機)。
如果不是選擇默認安裝路徑,那么就需要人為修改。
系統(tǒng)環(huán)境變量PATH需要作如下修改,32位機和64位機分別添加
$(AMDAPPSDKROOT)\bin\x86,對應的就是C:\Program Files\AMD APP SDK\3.0-0-Beta\bin\x86
$(AMDAPPSDKROOT)\bin\x86_64,對應的就是C:\Program Files(x86)\AMD APP SDK\3.0-0-Beta\bin\x86_64
安裝好AMDAPPSDK之后,在命令行下運行clinfo命令,將顯示出你支持OpenCL的硬件信息。
我們先新建一個簡單的工程,不妨取名為Simpleproject,然后編譯連接運行。代碼的內(nèi)容我們先不探討,在下文中會有詳細介紹。
#include <Cl/cl.h>
#include <stdio.h>
#define NWITEMS 512
//A simple memset kernel
const char *source =
"__kernel void memset( __global uint *dst ) \n"
"{ \n"
" dst[get_global_id(0)] = get_global_id(0); \n"
"} \n";
int main(int argc, char ** argv)
{
// 1. Get a platform.
cl_platform_id platform;
clGetPlatformIDs( 1, &platform, NULL );
// 2. Find a gpu device.
cl_device_id device;
clGetDeviceIDs( platform, CL_DEVICE_TYPE_GPU,1,&device,NULL);
// 3. Create a context and command queue on that device.
cl_context context = clCreateContext( NULL, 1, &device, NULL, NULL, NULL);
cl_command_queue queue = clCreateCommandQueue( context, device, 0, NULL );
// 4. Perform runtime source compilation, and obtain kernel entry point.
cl_program program = clCreateProgramWithSource( context, 1, &source, NULL, NULL );
clBuildProgram( program, 1, &device, NULL, NULL, NULL );
cl_kernel kernel = clCreateKernel( program, "memset", NULL );
// 5. Create a data buffer.
cl_mem buffer = clCreateBuffer( context, CL_MEM_WRITE_ONLY, NWITEMS*sizeof(cl_float), NULL, NULL);
// 6. Launch the kernel. Let OpenCL pick the local work size.
size_t global_work_size = NWITEMS;
clSetKernelArg(kernel, 0, sizeof(buffer), (void*) &buffer);
clEnqueueNDRangeKernel( queue, kernel, 1, NULL, &global_work_size, NULL, 0, NULL, NULL);
clFinish( queue );
// 7. Look at the results via synchronous buffer map.
cl_uint *ptr;
ptr = (cl_uint *) clEnqueueMapBuffer( queue, buffer, CL_TRUE, CL_MAP_READ, 0, NWITEMS * sizeof(cl_uint), 0, NULL, NULL, NULL );
int i;
for(i=0; i < NWITEMS; i++)
printf("%d %d\n", i, ptr[i]);
return 0;
}
不出意外的話,編譯過不了,有下面的提示。
fatal error C1083: Cannot open include file: 'Cl/cl.h': No such file or directory
顯然,這是因為工程需要的頭文件我們的環(huán)境并沒有把它包含進來,所以,要做如下配置:
打開項目的Property Pages,在C/C++ -> General ->Additional Include Directories 中添加
$(AMDAPPSDKROOT)/include;
點擊Build工程之后,出現(xiàn)了下面錯誤。這是由于我們并沒有把工程需要的連接庫文件添加進來的問題。需要作如下配置。
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clGetPlatformIDs@12 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clGetDeviceIDs@24 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clCreateContext@24 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clCreateBuffer@24 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clCreateProgramWithSource@20 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clBuildProgram@24 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clCreateKernel@12 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clSetKernelArg@16 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clFinish@4 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clEnqueueMapBuffer@44 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clEnqueueNDRangeKernel@36 referenced in function _main
1>SimpleProject.obj : error LNK2019: unresolved external symbol _clCreateCommandQueue@20 referenced in function _main
打開項目的Property Pages,在Linker -> General ->Additional Library Directories 中添加
$(AMDAPPSDKROOT)\lib\x86\;
在Linker -> Input ->Additional Dependencies中選擇Edit,然后添加
OpenCL.lib
Inherited values中默認的值應該為:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
程序運行成功。至此,AMD APP SDK 3.0的下載安裝和配置都已經(jīng)完成了,不明白之處請參閱手冊。
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項,請輸入內(nèi)容