01 2012 档案

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

posted @ 2012-01-31 19:56 迈克老狼2012 阅读(4118) 评论(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 阅读(4019) 评论(0) 推荐(0) 编辑

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

posted @ 2012-01-31 19:33 迈克老狼2012 阅读(2588) 评论(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 阅读(3592) 评论(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 阅读(2989) 评论(3) 推荐(1) 编辑

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

posted @ 2012-01-31 19:24 迈克老狼2012 阅读(3680) 评论(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 阅读(3123) 评论(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 阅读(3128) 评论(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 阅读(3014) 评论(0) 推荐(0) 编辑

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 阅读(4023) 评论(0) 推荐(1) 编辑

AMD OpenCL大学课程(4)
摘要:Kernel对象: Kernel就是在程序代码中的一个函数,这个函数能在OpenCL设备上执行。一个Kernel对象就是kernel函数以及其相关的输入参数。 Kernel对象通过程序对象以及指定的函数名字创建。注意:函数必须是程序源代码中存在的函数。 运行时编译: 在运行时,编译程序和创建kernel对象是有时间开销的,但这样比较灵活,能够适应不同的OpenCL硬件平台。... 阅读全文

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

AMD OpenCL大学课程(3)
摘要:OpenCL内存对象: OpenCL内存对象就是一些OpenCL数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL内存对象包括buffer对象和image对象。 buffer对象:连续的内存块----顺序存储,能够通过指针、行列式等直接访问。 image对象:是2维或3维的内存对象,只能通过read_image() 或 write_image()来读取。imag... 阅读全文

posted @ 2012-01-30 20:36 迈克老狼2012 阅读(4352) 评论(2) 推荐(1) 编辑

AMD OpenCL大学课程(2)
摘要:1、OpenCL架构 OpenCL可以实现混合设备的并行计算,这些设备包括CPU,GPU,以及其它处理器,比如Cell处理器,DSP等。使用OpenCL编程,可以实现可移植的并行加速代码。[但由于各个OpenCL device不同的硬件性能,可能对于程序的优化还要考虑具体的硬件特性]。 通常OpenCL架构包括四个部分: 平台模型(Platform Model) ... 阅读全文

posted @ 2012-01-30 20:28 迈克老狼2012 阅读(5635) 评论(1) 推荐(0) 编辑

AMD OpenCL 大学课程(1)
摘要:AMD OpenCL大学课程是非常好的入门级OpenCL教程,通过看教程中的PPT,我们能够很快的了解OpenCL机制以及编程方法。下载地址:http://developer.amd.com/zones/OpenCLZone/universities/Pages/default.aspx教程中的英文很简单,我相信学OpenCL的人都能看得懂,而且看原汁原味的英文表述,更有利于我们了解各种术语... 阅读全文

posted @ 2012-01-30 19:21 迈克老狼2012 阅读(10476) 评论(7) 推荐(3) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示