CPU与GPU的基本知识

文章目录

    • 重要指标
    • CPUs: 延迟导向设计
    • GPUs: 吞吐导向设计
    • GPU&CPU对比
    • 适合实用GPU的场景
    • 重点

重要指标

延迟:一条指令从发出到返回结果所经历的时间间隔
吞吐量:单位时间内处理指令的条数

CPUs: 延迟导向设计

CPU与GPU的基本知识_第1张图片

CPU特点:
设计原则:减少延迟(所以叫延迟导向设计)

  1. 内存大
    本着空间换时间的思想,拥有多级缓存结构提高访存速度
    L1 Cache, L2 Cache, L3 Cache
    把经常访问的数据放在低级缓存 L1 Cache中
    不常访问的数据放在高级缓存 L3 Cache中

  2. 有很多复杂的 Control 单元(如图所示)

重要机制:
(i)分支预测机制 -- 在硬件中判断语言的 if esle break continue 的执行
(ii)流水线数据前送机制 -- 判断如果是马上要访问的数据,会用流水线机制把数据尽可能向前推送,减少等待时间 
  1. 运算单元强大
    支持整型浮点型数据运算
    支持与或非逻辑运算

GPUs: 吞吐导向设计

CPU与GPU的基本知识_第2张图片

设计原则:增加指令吞吐

  1. 缓存小(如图 L2 Cache)
    缓存小 – > 使得指令访问缓存的次数显著减少 – >提升内存访问吞吐

  2. 控制单元简单
    没有分支预测机制
    没有数据转发机制

  3. 精简运算单元
    多长延时流水线以实现高吞吐量(一行很多运算单元)
    需要大量线程来容忍延迟(每一行的运算单元控制指令只有一个【如图一行的橙紫两小格】)

GPU&CPU对比

CPU比 GPU ,单条复杂指令延迟快10倍以上
GPU比 CPU ,单位时间内执行指令数量10倍以上

CPU:一个优秀的大学生
GPU: 1000个中学生

适合实用GPU的场景

1)计算密集的程序适合在GPU --  because 数值计算的比例要远大于内存操作,因此内存访问的延时可以被计算掩盖 
2)并行度高的程序适合在GPU --  because 大任务可以拆解为执行相同指令的小任务,因此对复杂流程控制的需求较低

3)控制复杂的程序不适合在GPU运行
4)如果要频繁的访问缓存,则不适合使用GPU

重点

  • 流水线前传机制 如何使CPU的效率显著增加
  • 3级缓存(Cache)的特点 ,哪些内容适合放在哪一级别的缓存上
  • 什么样的问题适合GPU

你可能感兴趣的:(cuDNN与TensorRT,c++,人工智能,深度学习)