AMD APP SDK 3.0 下载安装和配置详解

一、介绍   

    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的这些还有其他优势将会帮助你利用现代异构系统性能的巨大潜力。

二、使用前注意事项

    使用之前,先看看是否有OpenCL 2.0所支持的AMD显卡型号,AMD Radeon HD 7790, AMD Radeon HD 8770, AMD Radeon HD 8500M/8600M/8700M/8800M/8900M Series(本人用的是8690M), AMD Radeon R5 M240, AMD Radeon R7 200 Series, AMD Radeon R9 290, AMD Radeon R9 290X, A-Series AMD Radeon R4 Graphics, A-Series AMD Radeon R5 Graphics, A-Series AMD Radeon R6 Graphics, A-Series AMD Radeon R7 Graphics, AMD FirePro W5100, AMD FirePro W9100, AMD FirePro S9150。

    支持的操作系统:

    1、Microsoft® 

    Windows®Win 7 (32/64 bits) and 8.1 (32/64 bits)

    2、Linux®

    openSUSE™ 13.1 (32-bit/64-bit)

    Ubuntu® 14.04 LTS, 14.10 (32-bit/64-bit)

    Red Hat® Enterprise 

    Linux® 7.0, 6.4, 6.5 (32-bit/64-bit)

    支持的编译环境:

    1、Microsoft® 

    Windows®Intel® C Compiler (ICC) 11.x; 

    Microsoft® Visual Studio® (MSVS) 2012 Professional Edition; 

    Microsoft® Visual Studio® (MSVS) 2010 Professional Edition; 

    Microsoft® Visual Studio® (MSVS) 2008 Professional Edition; 

    Minimalist GNU for Windows (MinGW) [GCC 4.4]; 

    Microsoft® Visual Studio® (MSVS) 2013 Professional Edition

    2、Linux®

    Linux GNU Compiler Collection (GCC) 4.7.1 or later

三、SDK的下载

    官网下载地址:http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/

    由于该SDK分为Linux 32 Linux 64 和windows 三个版本,所以在下载时得看清楚。Linux平台上的是离线安装包,Windows下的是在线安装管理器。虽然都不大,但是从官网下载源的下载地址都很慢,特别是Windows下的在线安装包不支持断点续传,所以比较麻烦。所以下面给出在线安装包下载AMD-SDKInstaller-v1.2.116-Beta-windows-F-x86.exe的官方下载源地址和百度网盘的下载地址。

    官方下载地址:amd-dev.wpengine.netdna-cdn.com/app-sdk/installers/UnifiedSDKInstaller/1.2-Beta/full/AMD-SDKInstaller-v1.2.116-Beta-windows-F-x86.exe

    百度网盘地址:http://pan.baidu.com/s/1qWx7mzU

    AMD APP SDK包只包含了CPU runtime,GPU runtime包含在了Catalyst driver中。默认的安装路径是C:\Program Files\AMD APP SDK\3.0-0-Beta,在操作系统中安装了以下三部分内容:

    1、AMD APP SDK CPU Runtime

    2、AMD APP SDK Developer component。

       这包含了以下两部分内容:

       ---opencl编译器

       ---最新版开发指南文件,AMD math libraries。

       包含了以下四个文件夹(C:\Program Files\AMD APP SDK\3.0-0-Beta):

       ---bin包含了编译opencl应用所需工具以及运行所需opencl动态库

       ---lib包含了基本的opencl CPU运行库

       ---include包含了opencl运行的头文件

    ---docs包含了AMD APP SDK开发文档

    3、AMD APP SDK Samples。这包含了以下两部分:

       ---sample applications

       ---sample documentation

 另外,AMD APP SDK安装会自动添加变量AMDAPPSDKROOT到环境中去,这也指明了CPU Run-time 文件的安装位置。sample applications被安装在默认路径或者用户指定路径,安装过程也自动添加了opencl动态库的路径LD_LIBRARY_PATH到系统环境变量中去。

安装前对系统的需求:

1、管理员权限

2、windows 8.1或者windows 7

3、Microsoft Visual Studio 2012 redistributable

4、具备以下一种ideMicrosoft Visual Studio 2010, Microsoft Visual Studio 2012, or Microsoft Visual Studio 2013.

5、为了创建Bolt samples,需要Microsoft Visual Studio 2010或者Microsoft Visual Studio 2012

6、DirectX samples需要windows sdk 8.0及以上

7、c++ AMP samples需要Microsoft Visual Studio 2012及以上。


在windows system中,选择的安装文件如下,

–32位机 AMD-SDKInstaller-v1.<x.y>-Beta-windows-F-x86.exe
   –64位机 AMD-SDKInstaller-v1.<x.y>-Beta-windows-F-x64.exe

四、SDK的安装

安装过程,我们一般选择默认路径就行,直接点下一步完成安装。如果选择默认自动安装,那么会自动生成变量

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位机)。

如果不是选择默认安装路径,那么就需要人为修改。

系统环境变量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的硬件信息。

五、VS 2012下的配置

   我们先新建一个简单的工程,不妨取名为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 %d\n", 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)\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的下载安装和配置都已经完成了,不明白之处请参阅手册。




  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: AMD APP SDKAMD 加速处理器应用程序开发工具包)是一款由美国超微公司开发的软件开发工具包。它旨在为开发人员提供在AMD加速处理器上进行并行计算的能力。 AMD APP SDK包含一系列工具和库,可用于开发并行计算应用程序。其中包括了AMD Accelerated Parallel Processing(APP)库、OpenCL软件开发工具包以及用于构建和优化OpenCL内核的工具。 使用AMD APP SDK,开发人员可以利用AMD加速处理器的强大计算能力,实现高性能的并行计算。 AMD APP SDK的主要特点包括: 1. 并行计算支持:AMD APP SDK支持OpenCL并行计算标准,允许开发人员利用AMD加速处理器的所有计算资源进行并行计算。这可以提高应用程序的性能和效率。 2. 跨平台支持:AMD APP SDK支持多个操作系统平台,包括Windows和Linux。开发人员可以在不同的操作系统环境下使用同一个开发工具包来开发并行计算应用程序。 3. 开放源代码:AMD APP SDK是开放源代码的,任何人都可以访问和使用它。这使得开发人员可以自由地定制和修改工具包,以满足他们具体的需求。 4. 社区支持:AMD APP SDK拥有活跃的开发者社区,开发人员可以在社区中获取支持和帮助。这有助于加快应用程序的开发和优化过程。 总而言之,AMD APP SDK是一个强大的软件开发工具包,为开发人员提供了利用AMD加速处理器进行高性能并行计算的能力。它的跨平台、开放源代码和社区支持等特点使得开发人员可以自由地定制和优化应用程序,提高其性能和效率。 ### 回答2: AMD App SDKAMD 应用程序开发工具包)是由 AMD 公司开发的一套用于加速计算的开发工具包。它提供了一系列的 API 和工具,使开发者能够使用 AMD GPU(图形处理器)进行并行计算和图像处理。 AMD App SDK 3.0AMD App SDK 的一个版本,它主要在性能、功能和兼容性等方面进行了改进和优化。 在性能方面,AMD App SDK 3.0 支持了更多的硬件和操作系统,使开发者能够更全面地利用 AMD GPU 进行加速计算。它还优化了编译器和运行时库,提高了代码的执行效率,从而加快了计算速度。 在功能方面,AMD App SDK 3.0 引入了许多新的功能和扩展,使开发者能够更方便地使用 GPU 进行并行计算。例如,它增加了对 OpenCL 2.0 的支持,提供了更多的并行计算和内存管理功能,同时还添加了新的图像处理和视频编解码功能等。 除此之外,AMD App SDK 3.0 还提供了丰富的示例代码和文档,帮助开发者快速上手并使用 AMD GPU 进行加速计算。它还支持多种编程语言,如 C++、Python 等,使开发者能够根据自己的喜好和需求选择合适的语言进行开发。 总之,AMD App SDK 3.0 是一套功能强大、性能优越的开发工具包,为开发者提供了更多的选择和灵活性,使他们能够更高效地利用 AMD GPU 进行加速计算和图像处理。 ### 回答3: AMD App SDK 3.0是一种用于开发并加速应用程序的软件开发工具包(SDK)。它是由AMD公司开发的,旨在帮助开发人员利用AMD的GPU计算能力来提高应用程序的性能。 AMD App SDK 3.0支持OpenCL(开放计算语言),它是一种跨平台的编程语言,可用于编写并行计算程序。OpenCL对不同厂商的GPU和CPU进行了抽象,并提供了统一的编程接口,使开发者可以轻松地利用各种硬件的计算能力。 使用AMD App SDK 3.0,开发人员可以利用GPU进行并行计算,从而提高应用程序的性能和吞吐量。它可以用于各种领域的应用程序,包括科学计算、数据分析、图像处理和机器学习等。 此外,AMD App SDK 3.0还提供了一套丰富的工具和示例代码,帮助开发人员更容易地入门和学习并行计算。它还支持多个操作系统,包括Windows和Linux,以及多个开发环境,如Visual Studio和Eclipse等。 总之,AMD App SDK 3.0是一种强大的开发工具包,可以帮助开发人员利用AMD的GPU计算能力来提高应用程序的性能。它提供了丰富的功能和工具,使开发者能够更轻松地开发并行计算程序,并加速应用程序的运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值