随笔分类 -  cuda

摘要:在CUDA中统计运算时间,大致有三种方法:<1>使用cutil.h中的函数unsigned int timer=0; //创建计时器cutCreateTimer(&timer); //开始计时cutStartTimer(timer);{ //统计的代码段 …………}//停止计时cutStopTimer(timer);//获得从开始计时到停止之间的时间cutGetTimerValue( timer);//删除timer值cutDeleteTimer( timer);<2>time.h中的clock函数clock_t start, finish;float cost 阅读全文
posted @ 2012-08-17 14:44 喜欢阿亮的小水 阅读(939) 评论(0) 推荐(0)
摘要:特此声明:这个内容我是转别人的我只摘录一些我需要的东西,若是想看原文的,请点击下面的链接原文:http://hi.baidu.com/coolrainbow/item/de05efc83151671a505058781 硬件架构CUDA编程中,习惯称CPU为Host,GPU为Device。2 并行模型Thread:并行基本单位Block:相互合作的一组线程。可以彼此同步,快速交换数据,最多可以512个线程Grid:一组Block,有共享全局内存Kernel:在GPU上执行的程序,一个Kernel对应一个GridBlock和Thread都有各自的ID,记作blockIdx(1D,2D),thre 阅读全文
posted @ 2012-07-28 16:23 喜欢阿亮的小水 阅读(3078) 评论(0) 推荐(0)
摘要:需要注意的是在CUDA的3.1版本以后,CUDA Visual Profiler和OpenCL Visual Profiler已经被集成到单独的Compute Visual Profiler应用程序中了。Compute Visual Profiler 4.0提供了一个新的分析功能,提供基于profiling数据的性能分析。该功能也提供了多种优化提示来提高程序的性能。 阅读全文
posted @ 2012-07-24 20:23 喜欢阿亮的小水 阅读(180) 评论(0) 推荐(0)
摘要:CUDA编程模型CUDA编程模型将CPU作为主机,GPU作为协处理器(co-processor)或设备。在这个模型中,CPU负责逻辑性强的事务处理和串行计算,GPU则专注于高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间。一旦确定了程序中的并行部分,就可以考虑把这部分计算工作交给GPU。kernel:运行在GPU上的C函数称为kernel。一个kernel函数并不是一个完整的程序,而是整个CUDA程序中的一个可以被并行执行的步骤。当调用时,通过N个不同的CUDA线程执行N次。一个完整的CUDA程序是由一系列的设备端kernel函数并行步骤和主机端的串行处理步骤共同组成的 阅读全文
posted @ 2012-07-16 13:02 喜欢阿亮的小水 阅读(1706) 评论(0) 推荐(0)
摘要:原文地址:http://www.cnblogs.com/Fancyboy2004/archive/2009/04/28/1445637.htmlcuda入门——GPU 的硬件架构 这里我们会简单介绍,NVIDIA 目前支持 CUDA 的 GPU,其在执行 CUDA 程序的部份(基本上就是其 shader 单元)的架构。这里的数据是综合 NVIDIA 所公布的信息,以及 NVIDIA 在各个研讨会、学校课程等所提供的数据,因此有可能会有不正确的地方。主要的数据源包括 NVIDIA 的 CUDA Programming Guide 1.1、NVIDIA 在 Supercomputing ' 阅读全文
posted @ 2012-07-12 21:07 喜欢阿亮的小水 阅读(255) 评论(0) 推荐(0)
摘要:目前市场上的NVIDIA显卡都是基于Tesla架构的,分为G80、G92、GT200三个系列。Tesla体系架构是一块具有可扩展处器数量的处理器阵列。每个GT200 GPU包含240个流处理器(streaming processor,SP),每8个流处理器又组成了一个流多处理器(streaming multiprocessor,SM),因此共有30个流多处理器。GPU在工作时,工作负载由PCI-E总线从CPU传入GPU显存,按照体系架构的层次自顶向下分发。PCI-E 2.0规范中,每个通道上下行的数据传输速度达到了5.0Gbit/s,这样PCI-E2.0×16插槽能够为上下行数据各提 阅读全文
posted @ 2012-07-07 20:18 喜欢阿亮的小水 阅读(912) 评论(0) 推荐(0)
摘要:CUDA存储器模型:GPU片内:register,shared memory;板载显存:local memory,constant memory, texture memory, texture memory,global memory;host 内存: host memory, pinned memory.register: 访问延迟极低; 基本单元:register file (32bit/each) 计算能力1.0/1.1版本硬件:8192/SM; 计算能力1.2/1.3版本硬件: 16384/SM; 每个线程占有的register有限,编程时不要为其分配过多私有变量;local me. 阅读全文
posted @ 2012-07-07 18:41 喜欢阿亮的小水 阅读(829) 评论(0) 推荐(1)
摘要:CUDA C不是C语言,而是对C语言进行扩展。CUDA对C的扩展主要包括以下四个方面: 函数类型限定符,用来确定函数是在CPU还是在GPU上执行,以及这个函数是从CPU调用还是从GPU调用。__device__,__device__表示从GPU上调用,在GPU上执行; __global__,__global__表示在CPU上调用,在GPU上执行,也就是所谓的内核(kernel)函数;内核主要用来执行多线程调用。 __host__,__host__表明在CPU上调用,在CPU上执行,这是默认时的情况,也就是传统的C函数。CUDA支持__host__和__device__的联用,表示同时为主机和设 阅读全文
posted @ 2012-07-07 16:11 喜欢阿亮的小水 阅读(646) 评论(0) 推荐(0)