
GPU编程
jaccen
这个作者很懒,什么都没留下…
展开
-
OpenCL Tutorials Go OpenCL Tutorials - 1
原文如下:http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials%20-%201Hi all, this is the first OpenCL real tutorial. Here I will not approach technical concepts of the GPU architecture and per转载 2016-05-10 21:58:41 · 954 阅读 · 0 评论 -
基于OpenCL的深度学习工具:AMD MLP及其使用详解
摘要:本文介绍AMD深度学习团队开发的MLP学习工具软件的使用,为深度学习研究人员和开发商提供一个高性能、高易用性的深度学习的软硬件平台方案。AMD-MLP基于OpenCL,支持不同类型的GPU平台,并能通过多GPU扩展学习速度。【编者按】深度学习是近年来迅速发展和突破的机器学习领域,具有非常广泛的应用前景。将服务器GPU应用到深度学习过程中,可以更好地推动深度学习技术研究和应用的发展转载 2016-05-04 10:09:40 · 3351 阅读 · 0 评论 -
OpenCL编程:图像卷积
图像卷积,就是对图像所有像素进行一些特定的运算处理。这里涉及两个问题,一是读取图片文件信息,二是作何种卷积运算。第一个问题可在《freeimage存取图片数据》里找到答案。第二个问题可以baidu卷积算法。 卷积是对每个像素都进行相同的处理。以前我们是用CPU来串行处理。现在我们可以利用OPENCL进行并行处理(多核CPU和GPU)。我们的例子很简单,是一个对图片进行低通滤波处理转载 2016-05-13 17:35:19 · 3839 阅读 · 0 评论 -
OPENCL简介
1.OpenCL概念OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPUI、GPU或其他类型的处理器组成。 OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并 控制平台的API组成。OpenCL提供了两种层面的并行机制:任务并行与数据并行。2.OpenCL与CUDA的区别不同点:OpenCL是转载 2016-05-10 22:56:30 · 1028 阅读 · 0 评论 -
OpenCL扩展
摘要:OpenCL扩展是指device支持某种特性,但这中特性并不是OpenCL标准的一部分。通过扩展,厂商可以给device增加一些新的功能,而不用考虑兼容性问题。现在各个厂商在OpenCL的实现中或多或少的使用了自己的扩展。1、OpenCL扩展OpenCL扩展是指device支持某种特性,但这中特性并不是OpenCL标准的一部分。通过扩展,厂商可以给device增加一些新的转载 2016-05-10 22:36:22 · 2324 阅读 · 3 评论 -
性能优化
摘要:所谓线程映射是指某个线程访问哪一部分数据,其实就是线程id和访问数据之间的对应关系。合适的线程映射可以充分利用硬件特性,从而提高程序的性能,反之,则会降低performance。1、线程映射所谓线程映射是指某个线程访问哪一部分数据,其实就是线程id和访问数据之间的对应关系。合适的线程映射可以充分利用硬件特性,从而提高程序的性能,反之,则会降低performance转载 2016-05-10 22:34:35 · 563 阅读 · 0 评论 -
GPU线程及调度
摘要:本节主要讲述OpenCL中的Workgroup如何在硬件设备中被调度执行。同时也会讲一下同一个workgroup中的workitem,如果它们执行的指令发生diverage(就是执行指令不一致)对性能的影响。本节主要讲述OpenCL中的Workgroup如何在硬件设备中被调度执行。同时也会讲一下同一个workgroup中的workitem,如果它们执行的指令发生diverage(转载 2016-05-10 22:33:43 · 9882 阅读 · 0 评论 -
GPU memory 结构
摘要:本节主要讲述GPU的memory架构。优化基于GPU device的kernel程序时,我们需要了解很多GPU的memory知识,比如内存合并,bank conflit(冲突)等等,这样才能针对具体算法做一些优化工作。本节主要讲述GPU的memory架构。优化基于GPU device的kernel程序时,我们需要了解很多GPU的memory知识,比如内存合并,bank confl转载 2016-05-10 22:32:49 · 6267 阅读 · 0 评论 -
OpenCL buffer使用及两个简单例子
摘要:在本节,我们主要介绍OpenCL中buffer的使用,同时提供了2个完整的例子,一个是图像的旋转,一个是矩阵乘法(非常简单,没有分块优化)。在本节,我们主要介绍OpenCL中buffer的使用,同时提供了2个完整的例子,一个是图像的旋转,一个是矩阵乘法(非常简单,没有分块优化)。1、创建OpenCL设备缓冲(buffer)OpenCL设备使用的数据都存放在设备的b转载 2016-05-10 22:31:29 · 7840 阅读 · 0 评论 -
GPU架构
摘要:首先我们可能有疑问,既然OpenCL具有平台无关性,我们为什么还要去研究不同厂商的特殊硬件设备呢?GPU架构内容包括:1.OpenCLspec和多核硬件的对应关系AMD GPU架构Nvdia GPU架构Cell Broadband Engine2.一些关于OpenCL的特殊主题OpenCL编译系统Installable client dri转载 2016-05-10 22:30:15 · 11561 阅读 · 0 评论 -
OpenCL概述 续篇
摘要:Kernel就是在程序代码中的一个函数,这个函数能在OpenCL设备上执行。一个Kernel对象就是kernel函数以及其相关的输入参数。Kernel对象:Kernel就是在程序代码中的一个函数,这个函数能在OpenCL设备上执行。一个Kernel对象就是kernel函数以及其相关的输入参数。Kernel对象通过程序对象以及指定的函数名字创建。注意:函数必转载 2016-05-10 22:29:09 · 1218 阅读 · 0 评论 -
OpenCL概述 续篇(Introduction to OpenCL)
摘要:OpenCL内存对象就是一些OpenCL数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL内存对象包括buffer对象和image对象。OpenCL内存对象:OpenCL内存对象就是一些OpenCL数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL内存对象包括buffer对象和image对象。buffer对象:连续的内存块---转载 2016-05-10 22:27:58 · 536 阅读 · 0 评论 -
OpenCL概述 (Introduction to OpenCL)
摘要: OpenCL可以实现混合设备的并行计算,这些设备包括CPU,GPU,以及其它处理器,比如Cell处理器,DSP等。使用OpenCL编程,可以实现可移植的并行加速代码。[但由于各个OpenCL device不同的硬件性能,可能对于程序的优化还要考虑具体的硬件特性]。1、OpenCL架构OpenCL可以实现混合设备的并行计算,这些设备包括CPU,GPU,以及其它处理器,比如转载 2016-05-10 22:27:10 · 706 阅读 · 0 评论 -
并行计算概述 (Introduction to Parallel Computing)
http://hc.youkuaiyun.com/resources/resource_detail?id=67摘要:在计算机术语中,并行性是指:把一个复杂问题,分解成多个能同时处理的子问题的能力。要实现并行计算,首先我们要有物理上能够实现并行计算的硬件设备,比如多核CPU,每个核能同时实现算术或逻辑运算。一、并行计算概述(Introduction to Parallel Comput转载 2016-05-10 22:24:58 · 3629 阅读 · 0 评论 -
OpenCL demo
1. 选择OpenCL平台并创建一个上下文平台(Platform)是指主机和OpenCL管理框架下的若干个设备构成的可以运行OpenCL程序的完整硬件系统,这个是跑OpenCL程序的基础,所以第一步要选择一个可用的OpenCL品台。一台机器上可以有不止一个这样的品台,一个平台也可以有不止一个GPU。主要涉及的函数: clGetPlatformIDs() ,用于获取可用的转载 2017-12-15 10:55:56 · 1743 阅读 · 0 评论