
【CUDA/OpenCL】
松子茶
关注数字图像处理,数据隐藏与信息隐藏,计算机视觉和机器学习...(欢迎关注微信公众号ID:songzitea)
展开
-
OpenCL中主机与设备之间的交一互
opencl应用的第一步是查询平台集合,选择其中一个或多个平台应用中使用。平台集可以用以下命令查询:cl_int clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms, cl_uint *num_platforms)原创 2013-10-11 23:45:43 · 4359 阅读 · 0 评论 -
OpenCL最小线程并行粒度
由于OpenCL是为各类处理器设备而打造的开发标准的计算语言。因此跟CUDA不太一样的是,其对设备特征查询的项更上层,而没有提供一些更为底层的特征查询。比如,你用OpenCL的设备查询API只能获取最大work group size,但无法获取到最小线程并行粒度。原创 2013-10-21 23:31:15 · 2952 阅读 · 0 评论 -
OpenCL矩阵转置
矩阵转置,主要的技巧还是利用好local memory ,防止local memory,以及glabol memory的读取尽量是合并读写。原创 2013-10-13 01:15:05 · 4357 阅读 · 2 评论 -
OpenCL的初步基本理解
对于OpenCL来说,它的执行过程可以这样理解:一段代码,.cpp的那个是在host上面执行的,也就是那段非kernel的代码。而kernel的那段代码来说,是在设备上执行的。对于平台,设备,上下文什么的都是一些比较抽象的概念。原创 2013-10-11 23:25:34 · 2178 阅读 · 0 评论 -
OpenCL中上下文
opencl中,上下文(context)是一个抽象容器并存在于主机端,它能协调主机与设备之间的交互机制,管理设备上可以的内存对象,跟踪针对每个设备新建kernel和程序.原创 2013-10-08 20:49:48 · 4607 阅读 · 0 评论 -
OpenCL的框架
面向异构平台的应用都必须完成的步骤:1)发现构成异构系统的组件。2)探查这些组件的特征,使软件能够适应不同硬件单元的特定特性。3)创建将在平台上运行的指令块(内核)。4)建立并管理计算中涉及的内存对象。5)在系统中正确的组件上按正确的顺序执行内核。6)收集最终结果。这些步骤通过OpenCL中的一系列API再加上一个面向内核的编程环境来完成。我们将采用一种“分而治之”的策略解释以上步骤的所有工作。原创 2013-10-06 23:07:52 · 3636 阅读 · 0 评论 -
GPU与CPU
CPU和GPU都是具有运算能力的芯片。CPU更像“通才”主要指令运算(执行)为重和数值运算,而GPU更像“专才”,主要图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力。芯片的速度主要取决于三个方面:微架构,主频和IPC(每个时钟周期执行的指令数)。原创 2013-10-06 11:16:52 · 2659 阅读 · 0 评论 -
在Windows下使用OpenCL配置
目前,NVIDIA 和 AMD 的 Windows driver 均有支持OpenCL(NVIDIA 的正式版 driver 是从自195.62 版开始,而 AMD则是从9.11 版开始)。NVIDIA 的正式版 driver 中包含 OpenCL.dll,因此可以直接使用。AMD 到目前为止,则仍需要安裝其 SDK 才有 OpenCL.dll。不过,在最新的 SDK 中,NVIDIA 和 AMD 使用的 calling convention 是相同的。也就是说,使用 AMD 的 SDK编译的 OpenCL原创 2013-09-28 14:03:41 · 7258 阅读 · 0 评论