2012年1月31日

Directx 11中垂直同步的设置

摘要: 1、什么是垂直同步? 垂直同步又称场同步(Vertical Hold),从CRT显示器的显示原理来看,单个象素组成了水平扫描线,水平扫描线在垂直方向的堆积形成了完整的画面。显示器的刷新率受显卡DAC控制,显卡DAC完成一帧的扫描后就会产生一个垂直同步信号。 当我们选择\"等待垂直同步信号"(即打开垂直同步)时,显卡绘制3D图形前会等待垂直同步信号,性能强劲的显卡则会提前完成渲染,并在... 阅读全文

posted @ 2012-01-31 19:56 迈克老狼2012 阅读(4105) 评论(2) 推荐(0) 编辑

AMD OpenCL大学教程(8)

摘要: 在本节,我们主要介绍OpenCL中buffer的使用,同时提供了两个个完整的例子,一个是图像的旋转,一个是矩阵乘法(非常简单,没有分块优化)。 1、创建OpenCL设备缓冲(buffer) OpenCL设备使用的数据都存放在设备的buffer中[其实就是device memory中]。我们用下面的代码创建buffer对象: cl_mem bufferobj = clCreat... 阅读全文

posted @ 2012-01-31 19:42 迈克老狼2012 阅读(3970) 评论(0) 推荐(0) 编辑

AMD OpenCL大学课程(13) OpenCL扩展

摘要: 1、OpenCL扩展 OpenCL扩展是指device支持某种特性,但这中特性并不是OpenCL标准的一部分。通过扩展,厂商可以给device增加一些新的功能,而不用考虑兼容性问题。现在各个厂商在OpenCL的实现中或多或少的使用了自己的扩展。 扩展的类型分为三种: Khronos OpenCL工作组批准的扩展,这种要经过一致性测试,可能会被增加到新版本的Open... 阅读全文

posted @ 2012-01-31 19:33 迈克老狼2012 阅读(2564) 评论(1) 推荐(0) 编辑

AMD OpenCL大学课程(12) 性能优化案例NBody

摘要: 本节主要介绍NBody算法的OpenCL性能优化。 1、NBody NBody系统主要用来通过粒子之间的物理作用力来模拟星系系统。每个粒子表示一个星星,多个粒子之间的相互作用,就呈现出星系的效果。 上图为一个粒子模拟星系的图片:Source: THE GALAXY-CLUSTER-SUPERCLUSTER CONNECTION,http://www.casca... 阅读全文

posted @ 2012-01-31 19:31 迈克老狼2012 阅读(3568) 评论(0) 推荐(0) 编辑

AMD OpenCL大学课程(11)

摘要: 性能优化 1、线程映射 所谓线程映射是指某个线程访问哪一部分数据,其实就是线程id和访问数据之间的对应关系。 合适的线程映射可以充分利用硬件特性,从而提高程序的性能,反之,则会降低性能。 请参考Static Memory Access Pattern Analysis on a Massively Parallel GPU这篇paper,文中讲述线程如何在算法中充分利用线程映射... 阅读全文

posted @ 2012-01-31 19:26 迈克老狼2012 阅读(2981) 评论(3) 推荐(1) 编辑

AMD OpenCL大学课程(10)

摘要: GPU线程及调度 本节主要讲述OpenCL中的Workgroup如何在硬件设备中被调度执行。同时也会讲一下同一个Workgroup中的workitem,如果它们执行的指令发生diverage(就是执行指令不一致)对性能的影响。学习OpenCL并行编程,不仅仅是对OpenCL Spec本身了解,更重要的是了解OpenCL硬件设备的特性,现阶段来说,主要是了解GPU的的架构特性,这样才能针... 阅读全文

posted @ 2012-01-31 19:24 迈克老狼2012 阅读(3633) 评论(0) 推荐(1) 编辑

AMD OpenCL大学教程(9)

摘要: 本节主要讲述GPU的memory架构。优化基于GPU device的kernel程序时,我们需要了解很多GPU的memory知识,比如内存合并,bank conflit(冲突)等等,这样才能针对具体算法做一些优化工作。 1、GPU总线寻址介绍 假定X是一个指向整数(32位整数)数组的指针,数组的首地址为0x00001232。一个线程要访问元素X[0], int t... 阅读全文

posted @ 2012-01-31 19:21 迈克老狼2012 阅读(3106) 评论(1) 推荐(0) 编辑

AMD OpenCL大学课程(7)

摘要: 6、Nvdia GPU Femi架构 GTX480-Compute 2.0 capability: 有15个core或者说SM(Streaming Multiprocessors )。 每个SM,一般有32 cuda处理器。 共480个cuda处理器。 带ECC的global memory 每个SM内的线程按32个单位调度执行,称作warp。每... 阅读全文

posted @ 2012-01-31 19:20 迈克老狼2012 阅读(3119) 评论(0) 推荐(1) 编辑

AMD OpenCL大学课程(6)

摘要: GPU架构 内容包括: 1.OpenCLspec和多核硬件的对应关系 AMD GPU架构 Nvdia GPU架构 Cell Broadband Engine 2.一些关于OpenCL的特殊主题 OpenCL编译系统 Installable client driver 首先我们可能有疑问,既然OpenCL具有平台无关性,我们为什么还要去研... 阅读全文

posted @ 2012-01-31 19:18 迈克老狼2012 阅读(2992) 评论(0) 推荐(0) 编辑

2012年1月30日

AMD OpenCL大学课程(5)

摘要: OpenCL内存模型 OpenCL的内存模型定义了各种各样内存类型,各种内存模型之间有层级关系。各种内存之间的数据传输必须是显式进行的,比如从host memory到device memory,从global memory到local memory等等。 WorkGroup被映射到硬件的CU上执行(在AMD 5xxx系列显卡上,CU就是simd,一个simd中有16个p... 阅读全文

posted @ 2012-01-30 21:09 迈克老狼2012 阅读(3995) 评论(0) 推荐(1) 编辑

导航