CUDA技术在GPU通用计算中的应用.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CUDA 技术在 GPU 通用计算中的应用 摘 要: CUDA技术是由 NVIDIA 推出的通用并行计算架构,其中的 GPU能够解决复杂的计算问题。 该架构主要包 含 CUDA 指令集架构 ( ISA)和 GPU 内部的并行计算引擎, 所编写的程序能够在支持 CUDA 的办理器上运行。 重点词: CUDA技术; GPU办理器;并行计算引擎;存 储器 中图分类号: TP391.9 文件表记码: A DOI: 实现 CUDA技术的 GPU构造 1.1 支持 CUDA技术的 GPU 计算单元构造 支持 CUDA技术的 GPU办理器的强大运算能力来自芯片 的 SM( Streaming Multiprocessor ),而 Fermi 办理器将每个 SM  包含的线程办理器增加到  32 个,线程办理器首次增加一 级缓存构造和二级缓存,它能够供所有的  SM  办理器使用。 为了知足通用计算的要求,拥有最新  CUDA技术的  Fermi  处 理器首次引入真实的缓存,每组  SM  拥有  64 KB 可配置内存 64 KB× 16=1 024 KB,共 1 MB),详细可分为 16 KB 共享内存和 48 KB一级缓存,或许 48 KB共享内存和 16 KB一级缓存。 它能够灵活配置,以知足不同任务的要求。 Fermin 办理器首 次引入 768 KB 的共享二级缓存供 16 个 SM 共享使用。 1.2 CUDA 的存储器构造 CUDA组织架构主要包括纹理存储器 ( Texture Memory )、本地存储器( Local Memory )、全局存储器(Global Memory )、常数存储器( Consant Memory )、寄存器( Register)和共享存储器( Shared Memory )。 寄存器( Register)是 GPU 办理器芯片上的高速缓存, 执行单元从寄存器里存取数据和指令有着最低的存取延时 和最快的执行速度。 在 CUDA 架构中,寄存器的基本单元是寄存器文件 (Register File),每个寄存器文件为 4 字节宽度。 寄存器对提 高程序的执行效率有特别重要的作用。 在执行程序时, 局部存储器( Local Memory )只能被 CUDA 中心的执行单元存取,而不能被同一个 SM 流办理器的其他 CUDA中心使用,属于 CUDA中心专用存储器。当每个 CUDA 中心的寄存器被有关程序使用完后,便使用局部存储器寄存 程序的数据和指令。有关于寄存器来说,局部存储器的存取 延时增加了。 共享存储器( Shared Memory )也是 GPU 内的高速存储 器。它能够被同一个 Block 中的多个线程共同接见,并存取 数据。这对实现稍微复杂的并行算法特别有用。在第一代和 第二代 CUDA 架构的 GPU 芯片中,每个 SM 流办理器的共享 存储器为 16 Kbyte,被组织成 16 块。在新一代 Fermi 架构中, GPU芯片的共享存储器与过去的 GPU有很大的不同, 不单容 量上有变化,配置也更为灵活,能够根据任务的需要配置为 48 Kbyte 或 16 Kbyte。 全局存储器 ( Global Memory )是位于 PCB电路板上的显 示存储器,不论是 CPU仍是 GPU,都能够方便地存取、 接见。 整个 GPU 上每个 SM 流办理器中的线程都能接见全局存储器。 全局存储器是由多个显存芯片组成的,它能够根据任务需要 灵活搭配――增加容量或增加系统带宽。由于全局存储器与 GPU并非集成在一同, 所以,当 GPU中的线程要从全局存储 器中读取数据和寄存结果时,要耗资较长的时间,有较大的 存取时延,而且它没有缓存体制。 常数存储器 ( Constant Memory )与全局存储器同样都位 于显存芯片中,可是,与全局存储器不同的是,常数存储器 拥有缓存,能够加速该地区存储器的接见,而且每个 SM 流 办理器拥有 8 KB的常数存储器,它是只读的。 2 NVCC编译器 NVCC编译器是一种混淆编译环境。该编译器主要用于 剖析目标程序中的代码,将源程序代码分为两类,一类代码 由 CPU 执行,另一类适归并行计算的代码由 GPU 执行。这样做,能够让 CPU 达成复杂的控制和管理任务,由 GPU 达成高度并行的计算任务。 3 CUDA CUDA能够提供 CUFFT、 CUBLAS和 CUDPP 3个功能强大 的函数库,像 C 语言的常用库函数同样,提供高效的常用函 数。CUFFT是一个利用 GPU进行傅里叶变换的函数库; CUBLAS 是一个基本的矩阵与向量运算库,它能够提供与 BLAS库相像的接口,并用于矩阵运算; CUDPP能够提供好多基本的

文档评论(0)

139****9559 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档