- 軟件大?。?span>105.00M
- 軟件語(yǔ)言:中文
- 軟件類(lèi)型:國(guó)產(chǎn)軟件
- 軟件類(lèi)別:免費(fèi)軟件 / 編程工具
- 更新時(shí)間:2017-06-29 14:46
- 運(yùn)行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:暫無(wú)
5.51M/中文/5.0
32.59M/英文/10.0
96.24M/中文/10.0
6.41M/中文/10.0
6.06M/中文/10.0
AMD APP SDK是一組高級(jí)的軟硬件技術(shù)。這款軟件能夠使圖形處理器(AMDGPU)和系統(tǒng)的x86內(nèi)核(CPU)共同協(xié)作。幫助用戶(hù)快而高效的完成任務(wù)。歡迎選哦的用戶(hù)來(lái)下載使用。
AMD APP,是AMD Accelerated Parallel Processing的縮寫(xiě)。中文譯作AMD加速并行處理技術(shù)。是AMD針對(duì)旗下圖形處理器(GPU)所推出的通用并行計(jì)算技術(shù)。利用這種技術(shù)可以充分發(fā)揮AMD GPU的并行運(yùn)算能力,用于對(duì)軟件進(jìn)行加速運(yùn)算或進(jìn)行大型的科學(xué)運(yùn)算。AMD APP技術(shù)的前身稱(chēng)作ATI Stream。2010年10月,隨著AMD Radeon HD6800系列顯卡的發(fā)布,ATI品牌正式被AMD取代。ATI Stream技術(shù)也隨著技術(shù)升級(jí)并更名為AMD APP技術(shù)。AMD APP的競(jìng)爭(zhēng)對(duì)手是nVIDIA CUDA。(來(lái)自百度百科)
AMD最近發(fā)布了支持最新的OpenCL 2.0標(biāo)準(zhǔn)的最新通用計(jì)算開(kāi)發(fā)包AMD APP SDK 3.0。這標(biāo)志著異構(gòu)計(jì)算發(fā)展道路上的一個(gè)新的里程碑。OpenCL 2.0實(shí)施了很多AMD所倡導(dǎo)的新的異構(gòu)系統(tǒng)架構(gòu)。值得注意的是,GPU和CPU設(shè)備之間的數(shù)據(jù)結(jié)構(gòu)指針內(nèi)存共享的概念可以大大地簡(jiǎn)化GPU參與加速計(jì)算的步驟。比起利用OpenCL 1.2,GPU設(shè)備利用了OpenCL 2.0排隊(duì)功能進(jìn)行計(jì)算任務(wù),為計(jì)算內(nèi)核提供了一種更加強(qiáng)悍的編程模型。OpenCL 1.2的通用地址空間是一個(gè)強(qiáng)大的編程優(yōu)勢(shì),但是OpenCL 2.0 引用了一種新的內(nèi)存對(duì)象,叫Pipe,這個(gè)在采用FIFO機(jī)制進(jìn)行數(shù)據(jù)采集時(shí)起到重要的作用。OpenCL的這些還有其他優(yōu)勢(shì)將會(huì)幫助你利用現(xiàn)代異構(gòu)系統(tǒng)性能的巨大潛力。
安裝過(guò)程,我們一般選擇默認(rèn)路徑就行,直接點(diǎn)下一步完成安裝。如果選擇默認(rèn)自動(dòng)安裝,那么會(huì)自動(dòng)生成變量
AMDAPPSDKROOT=C:\Program Files\AMD APP SDK\3.0-0-Beta\(32位機(jī))
AMDAPPSDKROOT=C:\Program Files(x86)\AMD APP SDK\3.0-0-Beta\(64位機(jī))。
如果不是選擇默認(rèn)安裝路徑,那么就需要人為修改。
系統(tǒng)環(huán)境變量PATH需要作如下修改,32位機(jī)和64位機(jī)分別添加
$(AMDAPPSDKROOT)\bin\x86,對(duì)應(yīng)的就是C:\Program Files\AMD APP SDK\3.0-0-Beta\bin\x86
$(AMDAPPSDKROOT)\bin\x86_64,對(duì)應(yīng)的就是C:\Program Files(x86)\AMD APP SDK\3.0-0-Beta\bin\x86_64
安裝好AMDAPPSDK之后,在命令行下運(yùn)行clinfo命令,將顯示出你支持OpenCL的硬件信息。
我們先新建一個(gè)簡(jiǎn)單的工程,不妨取名為Simpleproject,然后編譯連接運(yùn)行。代碼的內(nèi)容我們先不探討,在下文中會(huì)有詳細(xì)介紹。
#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;
}
不出意外的話(huà),編譯過(guò)不了,有下面的提示。
fatal error C1083: Cannot open include file: 'Cl/cl.h': No such file or directory
顯然,這是因?yàn)楣こ绦枰念^文件我們的環(huán)境并沒(méi)有把它包含進(jìn)來(lái),所以,要做如下配置:
打開(kāi)項(xiàng)目的Property Pages,在C/C++ -> General ->Additional Include Directories 中添加
$(AMDAPPSDKROOT)/include;
點(diǎn)擊Build工程之后,出現(xiàn)了下面錯(cuò)誤。這是由于我們并沒(méi)有把工程需要的連接庫(kù)文件添加進(jìn)來(lái)的問(wè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
打開(kāi)項(xiàng)目的Property Pages,在Linker -> General ->Additional Library Directories 中添加
$(AMDAPPSDKROOT)\lib\x86\;
在Linker -> Input ->Additional Dependencies中選擇Edit,然后添加
OpenCL.lib
Inherited values中默認(rèn)的值應(yīng)該為:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
程序運(yùn)行成功。至此,AMD APP SDK 3.0的下載安裝和配置都已經(jīng)完成了,不明白之處請(qǐng)參閱手冊(cè)。
請(qǐng)描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請(qǐng)輸入內(nèi)容