专栏首页Sorrower的专栏GPU编程(二): GPU架构了解一下!

GPU编程(二): GPU架构了解一下!

目录

  • 前言
  • GPU架构

  • GPU处理单元
  • 概念GPU
  • GPU线程与存储
  • 参考
  • 最后

前言

之前谈了谈CUDA的环境搭建. 这次说一下基本的结构, 如果不了解, 还是没法开始CUDA编程的.


GPU架构

GPU处理单元

GPU处理单元

从这张GPU概念内核图开始讲起, 会发现和CPU内核是不同的, 少了三级缓存以及分支预测等等. 但是增加了ALU, 扩大了上下文存储池. 增加ALU目的就是增强运算能力, 可以直接进行向量或者矩阵运算. 增加Ctx个数就是为了隐藏延迟, 遇到阻塞可以直接切换下一个. 然后, 此图是我依据一张比较官方的图进行重绘的. 图含8个ALU, 4组执行环境(Execution context), 每组有8个Ctx. 这样, 一个这样的内核可以并发(concurrent but interleaved)执行4条指令流(instruction streams), 32个并发程序片元(fragment).


概念GPU

复制16个上述的处理单元, 得到一个GPU. 实际肯定没有这么简单的, 所以可以说是概念GPU.

概念GPU

图含16个处理单元, 128个ALU, 64组执行环境(Execution context), 512个并发程序片元(fragment). 假设频率1GHz的话, 运算能力以及是256GFLOPS了. 祭出n多年前的卡皇GTX 480, 就已经有480个CUDA核, 内存带宽177.4GB/s. 而GTX 980 Ti有2816个CUDA核, 内存带宽336.5GB/s. 所以运算能力早就是非常恐怖的了. 如果全部画出来, 基本上密集恐惧症福利了(手动滑稽). 但是带宽依旧是瓶颈, 虽然比CPU带宽高了一个数量级, 但是可以看到, GTX 980 Ti的带宽也就是多年前GTX 480的两倍左右.


GPU线程与存储

由于目前还没有完全依靠GPU运行得机器, 一般来说, 都是异构的, CPU+GPU. 这一点在GPU编程上是要特别注意的, 也就是Host与Device.

HOST-DEVICE

在CUDA架构下, 显示芯片执行时的最小单位是thread. 数个thread可以组成一个block. 一个block中的thread能存取同一块共享的内存, 而且可以快速进行同步的动作. 不同block中的thread无法存取同一个共享的内存, 因此无法直接互通或进行同步. 因此, 不同block中的thread能合作的程度是比较低的. 上图:

线程结构1

线程结构2

然后依据thread, block和grid, 有着不同的存储. 可以结合下面两幅图进行理解:

线程存储1

线程存储2

GPU都是SIMT(单指令多线程)的, 线程是基本操作单位. 所以所有结构的核心都是线程, 存储也是依据线程结构设计.


参考

http://html.rhhz.net/tis/html/20150101.htm# http://hustcat.github.io/gpu-architecture/ https://blog.csdn.net/Ddreaming/article/details/52504125 https://www.geforce.cn/hardware/desktop-gpus/geforce-gtx-980-ti/specifications https://www.bilibili.com/video/av10436982?t=1317&p=6

----

最后

这次的话, 有些图是自己做的, 有几张是参考文章中的. 这些图是很重要的, 就像写c程序, 不懂操作系统是没法写好的. 想做GPU编程, 不懂结构也是不行的. 喜欢记得点赞哦, 有意见或者建议评论区见~


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mac下lua快速搭建

    SeanDepp
  • Android用5种方式实现自定义计时器, 哪种才是你的菜?

    SeanDepp
  • c/c++补完计划(二): c字符串复制

    SeanDepp
  • 【深度分析】深度学习选GPU,RTX 20系列值不值得?

    深度学习常被戏谑为“炼丹术”,那么,GPU于深度学习研究人员而言就是不可或缺的“炼丹炉”。

    新智元
  • 1.1 Programmable Graphics Processing Unit 发展历程

    面纱掩盖了过去、现在和将来,历史学家的使命是发现它现在是什么,而不是过去是什么。 ——Henry David Thoreau

    代码咖啡
  • [译]GPU加持,TensorFlow Lite更快了

    由于处理器性能和电池容量有限,在移动设备上使用计算密集的机器学习模型进行推断是非常耗资源的。 虽然可以采用一种加速途径:转换为定点数模型,但用户已经要求作为一种...

    云水木石
  • 学习笔记︱深度学习以及R中并行算法的应用(GPU)

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! ...

    素质
  • 【杂谈】学深度学习的你有GPU了吗

    计算机常见的处理器包括CPU和GPU,CPU即中央处理单元(Central processing unit),它是计算机的控制核心。CPU需要很强的通用性来处理...

    用户1508658
  • 英伟达深度学习专家路川详解“如何升级GPU深度学习系统”

    GPU 成为在构建深度学习系统时必不可少的需要关注的方向,但是诸如如何选择一款 GPU 来搭建深度学习平台,如何升级自己的 GPU 之类的问题一直困扰着开发者。...

    小莹莹
  • 人工智能&大数据:加速GPU在数据中心领域的应用

    随着数据需求工作负载渗透到数据中心并覆盖传统的CPU性能,GPU各供应商已经为数据中心补充了全新的设备和显示卡。 最近大数据、人工智能以及机器学习的潮流正在企业...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券