标签: amdappsdk编程工具
AMD APP SDK是一组高级的软硬件技术。这款软件能够使图形处理器(AMDGPU)和系统的x86内核(CPU)共同协作。帮助用户快而高效的完成任务。欢迎选哦的用户来下载使用。
AMD APP,是AMD Accelerated Parallel Processing的缩写。中文译作AMD加速并行处理技术。是AMD针对旗下图形处理器(GPU)所推出的通用并行计算技术。利用这种技术可以充分发挥AMD GPU的并行运算能力,用于对软件进行加速运算或进行大型的科学运算。AMD APP技术的前身称作ATI Stream。2010年10月,随着AMD Radeon HD6800系列显卡的发布,ATI品牌正式被AMD取代。ATI Stream技术也随着技术升级并更名为AMD APP技术。AMD APP的竞争对手是nVIDIA CUDA。(来自百度百科)
AMD最近发布了支持最新的OpenCL 2.0标准的最新通用计算开发包AMD APP SDK 3.0。这标志着异构计算发展道路上的一个新的里程碑。OpenCL 2.0实施了很多AMD所倡导的新的异构系统架构。值得注意的是,GPU和CPU设备之间的数据结构指针内存共享的概念可以大大地简化GPU参与加速计算的步骤。比起利用OpenCL 1.2,GPU设备利用了OpenCL 2.0排队功能进行计算任务,为计算内核提供了一种更加强悍的编程模型。OpenCL 1.2的通用地址空间是一个强大的编程优势,但是OpenCL 2.0 引用了一种新的内存对象,叫Pipe,这个在采用FIFO机制进行数据采集时起到重要的作用。OpenCL的这些还有其他优势将会帮助你利用现代异构系统性能的巨大潜力。
安装过程,我们一般选择默认路径就行,直接点下一步完成安装。如果选择默认自动安装,那么会自动生成变量
AMDAPPSDKROOT=C:Program FilesAMD APP SDK3.0-0-Beta(32位机)
AMDAPPSDKROOT=C:Program Files(x86)AMD APP SDK3.0-0-Beta(64位机)。
如果不是选择默认安装路径,那么就需要人为修改。
系统环境变量PATH需要作如下修改,32位机和64位机分别添加
$(AMDAPPSDKROOT)binx86,对应的就是C:Program FilesAMD APP SDK3.0-0-Betabinx86
$(AMDAPPSDKROOT)binx86_64,对应的就是C:Program Files(x86)AMD APP SDK3.0-0-Betabinx86_64
安装好AMDAPPSDK之后,在命令行下运行clinfo命令,将显示出你支持OpenCL的硬件信息。
我们先新建一个简单的工程,不妨取名为Simpleproject,然后编译连接运行。代码的内容我们先不探讨,在下文中会有详细介绍。
#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 %dn", i, ptr[i]);
return 0;
}
不出意外的话,编译过不了,有下面的提示。
fatal error C1083: Cannot open include file: 'Cl/cl.h': No such file or directory
显然,这是因为工程需要的头文件我们的环境并没有把它包含进来,所以,要做如下配置:
打开项目的Property Pages,在C/C++ -> General ->Additional Include Directories 中添加
$(AMDAPPSDKROOT)/include;
点击Build工程之后,出现了下面错误。这是由于我们并没有把工程需要的连接库文件添加进来的问题。需要作如下配置。
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)libx86;
在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的下载安装和配置都已经完成了,不明白之处请参阅手册。
加载全部内容
TGraphDisplay3D(图形编程软件)v1.0.59.202 官方版23.2M13人在玩TGraphDisplay3D是一个Delphi的组件,支持图形编程功能,使用纯Direct3D113D加速图形,支持音频样本显示,用户可以任意添加带有名称和自定义颜色的标记,有需要的用户不要错过了,欢迎下载使用!
下载Notepad2书签版(Notepad2 Bookmark Edition)v5.1 官方版322KB12人在玩Notepad2BookmarkEdition是一款非常好用的记事本替代文本编辑器,Notepad2是一个重量轻,自由和开放源码的记事本类似的语法突出显示的文本编辑器。
下载Mongood(MongoDB管理工具)v0.6.2 免费版9.2M9人在玩Mongood是一款功能强大的MongoDB管理工具,能够为用户提供强大的图形管理界面,能够在查询文件时自动生成索引,持完整的Mongo-shell数据类型和查询语法,能够提高你的数据库管理效率,有需要的用户欢迎下载使用!
下载PopSQLv1.0 官方版71.2M8人在玩PopSQL是一款非常好用的SQL编辑器,软件界面简洁,功能强大,支持多种语言输入,兼容多种SQL软件,如果你还在寻找sql编辑器,不妨试试PopSQL吧!
下载Sencha Architect 3注册版240.7M8人在玩SenchaArchitect3注册版是一款是HTML5可视化应用开发程序,开发团队可以在一个单一集成的环境中完成应用的设计、开发和部署,能够有效提高工作效率,有需要的用户不要错过了,欢迎下载使用!
下载Claris FileMaker Pro(低代码开发工具)v19.3.1.43 免费版289.9M6人在玩ClarisFileMakerPro低代码开发工具是一款非常好用的代码开发工具,它的页面简洁,功能强大,无需知道种种编程技术,开发者使用ClarisFileMakerPro也能提高工作效率,感兴趣的朋友快来下载体验吧。
下载SRPG Studio(RPG游戏制作引擎)v1.149 免费版191.5M5人在玩SRPGStudio是一款非常不错的RPG游戏制作工具,支持对事件、战斗、装备、地图等内容的自由度设置,能够为你的游戏添加各种BGM,将你喜欢的角色形象、剧本制作成游戏,感兴趣的用户欢迎下载使用!
下载sublime text3中文破解版(代码编辑器)45.6M4人在玩sublimetext3中文破解版是一款十分受用户推崇的代码编辑器,它的功能全面强大,拥有高效、没有干扰的界面以及非凡的代码编辑能力,支持语法高亮、代码补全、代码片段、代码折叠、行号显示、自定义皮肤、配色方案等强大功能,欢迎大家下载体验。
下载Database Comparev2018 官方版9.1M2人在玩DatabaseCompare是常用的比较两个数据库之间差异的工具,主要就帮助大家比较数据库中的对象,比如说存储过程啊、数据啊、表单什么的、数据库中的数据,表的结构。DatabaseCompare支持比较真实数据库和数据库快照、备份、版本控制器或文件夹中的构建脚本。
下载Greenfootv2018 中文版186M2人在玩Greenfoot是一个功能完整的开发环境,可以使用Java方便地编写游戏和进行模拟。它还可以被用来作为Java语言的教程,以及设计网络游戏,可以实用于所有年龄段的用户,而不仅仅是初学者。
下载