【寒武纪(16)】寒武纪和GPU的硬件架构的差异

如果想更深入地了解GPU的设计细节、实现细节,可阅读GPU厂商定期发布的白皮书和各大高校、机构发布的论文。推荐一个GPU解说视频:A trip through the Graphics Pipeline 2011: Index,虽然是多年前的视频,但比较系统、全面地讲解了GPU的机制和技术。

  • Part 1:
    Introduction; the Software stack.
  • Part 2:
    GPU memory architecture and the Command Processor.
  • Part 3:
    3D pipeline overview, vertex processing.
  • Part 4:
    Texture samplers.
  • Part 5:
    Primitive Assembly, Clip/Cull, Projection, and Viewport transform.
  • Part 6:
    (Triangle) rasterization and setup.
  • Part 7:
    Z/Stencil processing, 3 different ways.
  • Part 8:
    Pixel processing – “fork phase”.
  • Part 9:
    Pixel processing – “join phase”.
  • Part 10:
    Geometry Shaders.
  • Part 11:
    Stream-Out.
  • Part 12:
    Tessellation.
  • Part 13:
    Compute Shaders.
GPU基本概念

硬件层面

  • SP(Streaming Processor):流处理器, 是GPU最基本的处理单元,在fermi架构开始被叫做CUDA core。
  • SM(Streaming MultiProcessor): GPU中最小的执行单元。一个SM由多个CUDA core组成。

软件层面

  • Kernel:在GPU上执行的函数。
  • thread:一个CUDA的并行程序会被以许多个threads来执行。
  • Block:数个threads会被群组成一个block,同一个block中的threads可以同步,也可以通过shared memory通信。
  • Grid:Kernel 所对应的线程集合,由多个Block组成。
  • Warp:是最基本的执行单元,一个warp包含32个并行thread,这些thread以不同数据资源执行相同的指令。

GPU架构是围绕一个流式多处理器(SM)的扩展阵列搭建的。通过复制这种结构来实现GPU的硬件并行。

  • 先大概看一下SM包含的模块,熟悉一下:
    1. Instruction Cache:指令缓存,缓存了该SM里Warps的指令;
    2. Warp Scheduler:线程束调度器;
    3. Dispatch Unit:指令分发器,根据Warp Scheduler的调度向核心发送该Warp的指令;
    4. Register File:寄存器,编译好的机器码如ADD r1 r2 r3,这些r开头的就是一个个寄存器,给Core提供计算参数或者存储输出结果,上图的SM中有3万多个32bit的寄存器,Warp中每个任务都会分配私有的寄存器;
    5. Core:计算核心,负责浮点数和整数的计算;
    6. SFU:Special Function Units,执行特殊数学计算(sin、cos、log等);
    7. LD/ST:Load/Store,访存单元,加载和存储数据;
    8. L1 Cache:一级缓存,片上内存,即该内存是位于芯片内部的,速度很快;
    9. Shared Memory:共享内存,片上内存;
    10. Tex与Texture Cache:纹理单元用于采样纹理,纹理缓存;
    11. PolyMorph Engine:多边形引擎,用于处理顶点数据拉取、Viewport Transform等。

参考NVIDIA官网资料:Life of a triangle - NVIDIA’s logical pipeline

img

在这里插入图片描述
Fermi架构如上图,它的特性如下:

  • 拥有16个SM

  • 每个SM:

    • 2个Warp(线程束)
    • 两组共32个Core
    • 16组加载存储单元(LD/ST)
    • 4个特殊函数单元(SFU)
  • 每个Warp:

    • 16个Core
    • Warp编排器(Warp Scheduler)
    • 分发单元(Dispatch Unit)
  • 每个Core:

    • 1个FPU(浮点数单元)
    • 1个ALU(逻辑运算单元)

2018年的NVidia Turing架构为例进行解析

img 放大一点
在这里插入图片描述上图是采纳了Turing架构的TU102 GPU,它的特点如下:

  • 6 GPC(图形处理簇)
  • 36 TPC(纹理处理簇)
  • 72 SM(流多处理器)
  • 每个GPC有6个TPC,每个TPC有2个SM
  • 4,608 CUDA核
  • 72 RT核
  • 576 Tensor核
  • 288 纹理单元
  • 12x32位 GDDR6内存控制器 (共384位)

单个SM的结构图如下:
在这里插入图片描述
每个SM包含:

64 CUDA核
8 Tensor核
256 KB寄存器文件

可用主观看出,一个商业级别的GPU 包含的东西比 寒武纪的深度学习加速卡 的会复杂一点,在图像的处理,浮点运算的考虑上更加丰富。

参考

GPU的内存相对与CPU会更复杂一些,主要是为了适应不同数据的访问效率而做了很多存储分化。

kaiyuan:GPU内存(显存)的理解与基本使用

深度学习可好玩了:cuda编程笔记(四):存储系统结构10 赞同 · 0 评论文章

GPU架构方面可以看下面这篇文章:

[夕殿萤飞思悄然:深入GPU硬件架构及运行机制

https://blog.csdn.net/weixin_51971301/article/details/124703677
https://zhuanlan.zhihu.com/p/629678819

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值