AMD OpenCL大学课程(2)
1、OpenCL架构 OpenCL可以实现混合设备的并行计算,这些设备包括CPU,GPU,以及其它处理器,比如Cell处理器,DSP等。使用OpenCL编程,可以实现可移植的并行加速代码。
AMD OpenCL大学教程(8)
在本节,我们主要介绍OpenCL中buffer的使用,同时提供了两个个完整的例子,一个是图像的旋转,一个是矩阵乘法(非常简单,没有分块优化)。 1、创建OpenCL设备缓冲(buffer) OpenCL设备使用的数据都存放在设备的buffer中[其实就是device memory中]。
VS2010 OpenCL运行环境配置
1.安装AMD GPU显卡驱动(安装后重启)
13-12_win7_win8_64_dd_ccc_whql.exe
2.安装AMD OpenCL SDK(安装后重启)
AMD-APP-SDK-v2.9-Windows-641.exe
3.配置VS2010 OpenCL环境
(1)添加外部头文件
在项目->properties ->Configuration Proprtties->C/C++->General中设置。
AMD OpenCL大学课程(5)
OpenCL内存模型 OpenCL的内存模型定义了各种各样内存类型,各种内存模型之间有层级关系。各种内存之间的数据传输必须是显式进行的,比如从host memory到device memory,从global memory到local memory等等。
GPGPU OpenCL 获取kernel函数编译信息
使用OpenCL编程时,kernel写成一个单独的文件或者将文件内容保存在一个string中。可以使用clBuildProgram对kernel进行编译链接(compiles & links),如果失败,可以使用clGetProgramBuildInfo获取OpenCL编译器对kernel的编译信息。
OpenCL memory object 之选择传输path
对应用程序来说,选择合适的memory object传输path可以有效提高程序性能。
下面先看一写buffer bandwidth的例子:
1. clEnqueueWriteBuffer()以及clEnqueueReadBuffer()
如果应用程序已经通过malloc 或者mmap分配内存,CL_MEM_USE_HOST_PTR是个理想的选择。