GPU与GPGPU

文章目录

  • 一、什么是GPU
    • 1. GPU的由来
    • 2. GPU和CPU的区别
    • 3. GPU用于处理什么任务
  • 二、什么是GPGPU
    • 1. GPGPU的定义
    • 2. GPGPU与GPU的区别


一、什么是GPU

1. GPU的由来

为了提高了显示能力和显示速度,对于图像和图形的相关运算专门开发了GPU(Graphics Processing Unit)。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作。

2. GPU和CPU的区别

CPU需要很强的通用性来处理各种不同的数据类型,同时又要进行逻辑判断从而引入了大量的分支跳转和中断的处理,这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。

下图来自nVidia CUDA文档:

GPU与GPGPU_第1张图片
GPU与GPGPU_第2张图片

3. GPU用于处理什么任务

计算密集型的程序
所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当。从寄存器读写数据几乎没有延时;读内存的延迟大概是几百个时钟周期;读硬盘的速度即便是读SSD也非常慢了。

易于并行的程序
GPU其实是一种SIMD(Single Instruction Multiple Data)架构,它有成百上千个核,每一个核在同一时间最好能做同样的事情。

二、什么是GPGPU

1. GPGPU的定义

GPGPU (General Purpose GPU)即通用GPU,可以通俗的将GPGPU理解为一个辅助CPU的工具,它能够帮助CPU进行非图形相关程序的运算。

GPGPU架构设计时,去掉了GPU为了图形处理而设计的加速硬件单元,保留了GPU的SIMT架构和通用计算单元。所以当前基于GPU的图形任务无法直接运行在GPGPU上,但对于科学计算,AI训练、推理任务(其实主要是矩阵运算)等通用计算类型的任务仍然保留了GPU的优势,即高效的搬运和运算有海量数据的重复性任务。

GPGPU目前主要用于例如物理计算、加密解密、科学计算以及比特币等加密货币的生成。

2. GPGPU与GPU的区别

任务不同
GPGPU负责的是一些非图形相关程序的运算,如加密、解密;而GPU负责的是图形渲染、图形计算的任务。

存在形式不同
GPGPU通常被集成到CPU中,而GPU则是作为一个单独的模块,也就是独立显卡核心或者主板集成显卡核心。


以上内容来源于网络知识总结,如有侵权请私信联系立即删除:)

你可能感兴趣的:(hardware,硬件工程)