CUDA基本介绍.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CUDA基本介绍 GPU介绍 GPU英文全称Graphic Processing Unit,中文 译为“图形处理器”。GPU是相 对于CPU的一个概念,GPU是 显示卡的“心脏”,也就相当于 CPU在电脑中的作用,它决定 了该显卡的档次和大部分性能。 GPU的优势 强大的处理能力 GPU接近1Tflops/s 高带宽 140GB/s 低成本 Gflop/$和Gflops/w高于CPU 当前世界超级计算机五百强的入门门槛为12Tflops/s 一个三节点,每节点4GPU的集群,总处理能力就超过12Tflops/s,如果使用GTX280只需10万元左右,使用专用的Tesla也只需20万左右 GPU /CPU计算能力比较 GPU/CPU存储器带宽比较 GPU/CPU晶体管的使用 GPU发展 1993年,黄仁勋与C.P和C.M共同成立NVIDIA公司。 2007年,CUDA正式发布,引发GPU通用计算的革命。 2009年,GeForce?GTS?250发布。 2011年3月24日,GeForce GTX 590发布,这是Nvidia公司必威体育精装版的显卡。 CUDA CUDA(Compute Unified Device Architecture,计算统一设备架构),由显卡厂商Nvidia推出的运算平台。 CUDA是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。开发人员可以使用C语言来为CUDA架构编写程序。 CUDA的硬件架构 CUDA的软件架构 体系架构 体系架构由两部分组成,分别是流处理器阵列(SPA)和存储器系统。 (GT200) GPU的巨大计算能力来自SPA中的大量计算单元,SPA的结构又分为两层:TPC(线程处理器群)和SM(流多处理器); 存储器系统由几个部分组成:存储器控制器(MMC),固定功能的光栅操作单元(ROP),以及二级纹理缓存。 GT200架构 TPC SM ROP CUDA 执行模型 将CPU作为主机(Host),而GPU作为协处理器(Coprocessor) 或者设备(Device),从而让GPU来运行一些能够被高度线程化的程序。 在这个模型中,CPU与GPU协同工作,CPU负责进行逻辑性强的事务处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。 一个完整的CUDA程序是由一系列的设备端kernel函数并行步骤和主机端的串行处理步骤共同组成的。 CUDA执行模型 grid运行在SPA上 block运行在SM上 thread运行在SP上 grid block thread Kernel不是一个完整的程序,而只是其中的一个关键并行计算步骤。 Kernel以一个网格(Grid)的形式执行,每个网格由若干个线程块(block)组成,每一个线程块又由若干个线程(thread)组成。 一个grid最多可以有65535 * 65535个block 一个block总共最多可以有512个thread,在三个维度上的最大值分别为512, 512和64 存储器模型 Register Local shared Global Constant Texture Host memory Pinned host memory CUDA C语言 由Nvidia的CUDA编译器(nvcc)编译 CUDA C不是C语言,而是对C语言进行扩展形成的变种 引入了函数类型限定符:__device__,__host__和__global__。 引入了变量限定符:__device__,__shared__和__constant__。 引入了内置矢量类型:char1,dim3,double2等 引入了内建变量:blockIdx,threadIdx,gridDim,blockDim和warpSize 引入了运算符 引入了一些函数:同步函数,原子函数,纹理函数等 主机端代码主要完成的功能: 启动CUDA 为输入数据分配内存空间 初始化输入数据 为GPU分配显存,存放输入数据 将内存输入数据拷贝到显存 为GPU分配显存,存放输出数据 调用device端的kernel计算 为CPU分配内存,存放输出数据 将显存结果读到内存 使用CPU进行其他处理 释放内存和显存空间 退出CUDA 设备端代码主要完成的功能 从显存读数据到GPU中 对数据处理 将处理后的数据写回显存 * * 3 SM Instruction and constant cache Texture Load/store 对DRAM进行访问 TEXTURE机制 对global的atomic操作 *

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档