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