OpenCL基本概念】的更多相关文章

OpenCL程序同CUDA程序一样,也是分为两部分,一部分是在主机(以CPU为核心)上运行,一部分是在设备(以GPU为核心)上运行.在设备上运行的程序被称为核函数.但是对于核函数的编写,CUDA一般直接写在程序内,OpenCL是写在一个独立的文件中,并且文件后缀是.cl,由主机代码读入后执行,这一点OpenCL跟OpenGL中的渲染程序很像. 汇总一些OpenCL的基本概念,包括设备.核函数.主机.平台等,把这些概念跟CUDA类比,理解起来就很容易了. 设备(Device): GPU及其显存组成…
引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在通常的情况下,不可能将图形硬件编程化, 图形硬件也能够加快算法与图像的处理. 举个样例:通常情况下能够用来计算图形差分,模糊图像, 合并图像,甚至是进行图像(或数组)平均值计算. 随后,可编程方式的出现给编程者带来了极大的便利. 可编程方式所提供的新的可能性,更广泛类别的算法能够移植到GPU来运行.…
GPU 的硬件基本概念 Nvidia的版本: 实际上在 nVidia 的 GPU 里,最基本的处理单元是所谓的 SP(Streaming Processor),而一颗 nVidia 的 GPU 里,会有非常多的 SP 可以同时做计算;而数个 SP 会在附加一些其他单元,一起组成一个 SM(Streaming Multiprocessor).几个 SM 则会在组成所谓的 TPC(Texture Processing Clusters). 在 G80/G92 的架构下,总共会有 128 个 SP,以…
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 并行编程的需求是显而易见的,其最大的难题是找到算法的并行功能,同时必须处理数据的共享和同步.但是,因为每一个算法都是不一样的,很难有通用的并行功能--粒度都有可能是不一样的.OpenCL提供了很多并行的抽象模型,因此算法开发人员可以在不同粒度上开发并行的算法,以及数据的共享和同步. 一般来说,并行编程有两种大类型--分散收集(s…
英文出自:Streamcomputing 转自:http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl-can-be-used 摘要:个经典案例.有人将其称之为OpenCL计算领域的13个"小巨人". 一.Dense Linear Algebra(稠密线性代数) 级(矢量/矢量vector/vector),2级(矩阵/矢量),3级(矩阵/矩阵),应用范围极其广泛. 应用范围: 线性代数:LA…
欢迎关注,转载引用请注明 http://blog.csdn.net/leonwei/article/details/8909897 这里将更深入的说明一些OpenCL API的功能 1. 创建buffer 涉及到内存与显存的操作总是复杂麻烦的,这个函数也一样... cl_memclCreateBuffer ( cl_context context,   cl_mem_flags flags,   size_t size,   void *host_ptr,   cl_int *errcode_r…
首先注明:我用的AMD的opencl,它有很多sample代码,结合代码来解释这些API Opencl 常用的API 汇总总结: 信息查询函数 1. cl_int clGetDeviceInfo(cl_device_id device, cl_device_info param_name, size_t param_value_size, void * param_value, size_t *param_value_size_ret ) 参数说明 此函数用来查询OpenCL设备信息.首先介绍其…
转载自:http://www.cnblogs.com/mikewolf2002/archive/2011/12/18/2291584.html 当我们用clCreateBuffer, clCreateImage创建OpenCL memory object时候,我们需要输入一个flag参数,这个参数决定memory object的位置. cl_mem clCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void…
本文转载自:http://www.cnblogs.com/mikewolf2002/archive/2011/12/17/2291239.html 这篇日志是学习AMD OpenCL文档时候的总结. OpenCL用memory object在host和device之间传输数据,memory object由runtime(运行库,driver的一部分)来管理. OpenCL中的内存对象包括buffer以及image,buffer是一维数据元素的集合.image主要用来存储一维.二维.三维图像.纹理…
本文编写一个计算两个数组和的程序,用CPU和GPU分别运算,计算运算时间,并且校验最后的运算结果.文中代码偏多,原理建议阅读下面文章,文中介绍了OpenCL相关名词概念. http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201  (英文版) http://www.cnblogs.com/leiben/archive/2012/06/05/2536508.html (博友翻译的中文版) 一.创建工程 按照OpenCL…