NVIDIA 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文档。上传文档
查看更多
NVIDIA GPU 结构 目前市场上的 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 插槽能够为上下行数据各提供了5.0*16Gbit/s=10GB/s 的带宽,故有效带宽为 8GB/s,而 PCI-E 3.0 规范的上下行数据带宽各为 20GB/s。但是由于 PCI-E 数据封包的影响,实际可用的带宽大约在 5-6GB/(s PCI-E 2.0 ×16)。 在 GT200 架构中,每 3 个 SM 组成一个 TPC(Thread Processing Cluster,线程处理器集群),而在 G80 架构中,是两个 SM 组成一个 TPC,G80 里面有 8 个 TPC,因为 G80 有 128(2*8*8)个流处理器,而 GT200 中 TPC 增加到了 10(3*10*8)个,其中,每个 TPC 内部还有一个纹理流水线。 大多数时候,称呼 streaming processor 为流处理器,其实并不太正确,因为如果称streaming processor 为流处理器的话,自然是隐式的与 CPU 相对,但是 CPU 有独立的一套输入输出机构,而 streaming processor 并没有,不能在 GPU 编程中使用 printf 就是一个例证。将 SM 与 CPU 的核相比更加合适。和现在的 CPU 的核一样,SM 也拥有完整前端。 GT200 和 G80 的每个 SM 包含 8 个流处理器。流处理器也有其他的名称,如线程处理器, “核”等,而最新的Fermi 架构中,给了它一个新的名称:CUDA Core。SP 并不是独立的处理器核,它有独立的寄存器和程序计数器(PC),但没有取指和调度单元来构成完整的前端(由SM 提供)。因此,SP 更加类似于当代的多线程 CPU 中的一条流水线。SM 每发射一条指令, 8 个 SP 将各执行 4 遍。因此由 32 个线程组成的线程束(warp)是 Tesla 架构的最小执行单位。由于 GPU 中 SP 的频率略高于 SM 中其他单元的两倍,因此每两个 SP 周期 SP 才能对片内存储器进行一次访问,所以一个 warp 中的 32 个线程又可以分为两个 half-warp,这也是为什么取数会成为运算的瓶颈原因。 Warp 的大小对操作延迟和访存延迟会产生影响,取Warp 大小为 32 是 NVIDIA 综合权衡的结果。 SM 最主要的执行资源是 8 个 32bit ALU 和 MAD(multiply-add units,乘加器)。它们能够对符合 IEEE 标准的单精度浮点数(对应 float 型)和 32-bit 整数(对应 int 型,或者 unsigned int 型)进行运算。每次运算需要 4 个时钟周期(SP 周期,并非核心周期)。因为使用了四级流水线,因此在每个时钟周期,ALU 或 MAD 都能取出一个 warp 的 32 个线程中的 8 个操作数,在随后的 3 个时钟周期内进行运算并写回结果。 每个 SM 中,还有一个共享存储器(Shared memory),共享存储器用于通用并行计算时的共享数据和块内线程通信,但是由于它采用的是片上存储器,其速度极快,因此也被用于优化程序性能。 每个 SM 通过使用两个特殊函数(Special Function Unit,SFU)单元进行超越函数和属性插值函数(根据顶点属性来对像素进行插值)计算。SFU 用来执行超越函数、插值以及其他特殊运算。SFU 执行的指令大多数有 16 个时钟周期的延迟,而一些由多个指令构成的复杂运 算,如平方根或者指数运算则需要 32 甚至更多的时钟周期。SFU 中用于插值的部分拥有若干个 32-bit 浮点乘法单元,可以用来进行独立于浮点处理单元(Float Processing Unit,FPU)的乘法运算。SFU 实际上有两个执行单元,每个执行单元为SM 中 8 条流水线中的 4 条服务。向SFU 发射的乘法指令也只需要 4 个时钟周期。 在 GT200 中,每个 SM 还有一个双精度单元,用于双精度计算,但是其计算能力不到单精度的

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档