【微机原理】GPU的功能和架构

GPU的功能和架构

GPU基本介绍

GPU概念简介

GPU , 图形处理器(graphics processing unit),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。

GPU的诞生

  • NVIDIA公司在1999年8月31日发布GeForce 256图形处理芯片时首先提出GPU的概念。
  • GPU之所以被称为图形处理器,最主要的原因是因为它可以进行几乎全部与计算机图形有关的数据运算,而这些在过去是CPU的专利。
  • 目前,计算机图形学正处于前所未有的发展时期。近年来,GPU技术以令人惊异的速度在发展。渲染速率每6个月就翻一番。性能自99年,多年来提高了上千倍!与此同时,不仅性能得到了提高,计算质量和图形编程的灵活性也逐渐得以改善

GPU宏观物理形态

  • 由于纳米工艺的引入,GPU可以将数以亿记的晶体管和电子器件集成在一个小小的芯片内。从宏观物理结构上看,现代大多数桌面级GPU跟硬币同数量级大小。
  • 当GPU结合散热风扇、PCI插槽、HDMI接口等部件之后,就组成了显卡。
  • 显卡不能独立工作,需要装载在主板上,结合CPU、内存、显存、显示器等硬件设备,组成完整的PC机。

GPU的功能

  • 图形绘制

GPU最传统、最基础、最核心的功能。为大多数PC桌面、移动设备、图形工作站提供图形处理和绘制功能。

  • 物理模拟

GPU硬件集成的物理引擎(PhysX、Havok),为游戏、电影、教育、科学模拟等领域提供了成百上千倍性能的物理模拟,使得以前需要长时间计算的物理模拟得以实时呈现。

  • 海量计算

计算着色器及流输出的出现,为各种可以并行计算的海量需求得以实现,例如CUDA。

  • AI运算

近年来,人工智能的崛起推动了GPU集成了AI Core运算单元,反哺AI运算能力的提升,给各行各业带来了计算能力的提升。

  • 其它计算

音视频编解码、加解密、科学计算、离线渲染等都离不开现代GPU的并行计算能力和海量吞吐能力。

GPU历代架构发展

  • Fermi费米架构,包含GTX4、GTX5两个系列
  • Kepler开普勒架构, GTX6系列
  • Maxwell麦克斯韦架构, GTX9系列和GTX750
  • Pascal帕斯卡架构,GTX10系列
  • Turing图灵架构, RTX20系和GTX16系列
  • Ampere安培架构, RTX30系列
  • Adm安达架构, RTX40系列

GPU与CPU的区别

请添加图片描述

  • 绿色方框:computational units(可计算单元) 或称之为computational cores(计算核心)
  • 橙色方框:memories(内存)
  • 黄色方框:control units(控制单元)

Computational Units(cores)的区别

  • CPU的Computational units计算能力强、数量少;
  • GPU的Computational units计算能力弱、数量多;
  • CPU的优势在于核心的处理能力计算能力强,拥有"out-of-order exectutions"(乱序执行)功能 ;
  • GPU的优势在于大规模并行处理数据的能力,采用SIMD编程方式,各个Core的计算 操作在相同的时间内进行;(MAD与FMA) MAD指令实际是计算A*B+C的值
  • GPU的core只能做一些最简单的浮点运算,例如 multiply-add(MAD)或者 fused multiply-add(FMA)指令;
  • 核心区别MAD与FMA的不同,目的都是求解A*B+C

Memory的区别

  • CPU的memory系统一般基于DRAM,其内存系统中的cache可减少CPU访问DRAM的时间 ;

  • GPU中的内存(DRAM)被称为全局内存或者GMEM,其内存大小比CPU的DRAM小的多;

  • GPU左上角的小 橙色块是GPU的cache段,GPU与CPU缓存机制不同(在4.3中说明)

GPU底层架构

在特定的应用场 合,多个core之间是不需要的通讯的, 例如在图像缩放中,core与core之间不需要任何协作,他们的任务是完全独立,因此简单的并行操作即可。

但也存在许多场合,需要多个core之间相互通讯协作,例如数组求和问题 。

GPU数组求和问题

请添加图片描述

长度为8的数组两两并行求和计算,只需要3次就可以计算出结果,顺序计算则需要8次。

如果按照两两并行相加的算法,N个数字相加,那么仅需要 l o g 2 N log_2N log2N次就可以完成计算。

请添加图片描述

GPU只需四个core就可以完成长度为8的数组求和算法。

多个core之间需共享一段内存空间,进行读/写操作,以此完成数据交互。

多个core之间协作方法:将各类GPU的core分类为多个组,形成多个流处理器(Streaming Multiprocessors ),简称为SMs

GPU总体架构(以图灵架构为例)

请添加图片描述

绿色的块即为SM(一组core的集合)

SM(以图灵架构为例)

其存在不同类型 的CORE。主要分为INT32,FP32,TENSOR CORES等。

FP32 Cores,执行单进度浮点运算;

FP64 Cores,执行双进度 浮点运算;

Integer Cores,执行整数操作;

Tensor Cores,执行张量积算加速常见 的深度学习操作;

GPU的缓存机制及多个core之间的通信协作

在四个SM块的底部有一个L1 Cache,允许各个Core访问,在L1 Cache中每个SM都有一块专用的共享内存。L1 cache大小有限,速度非常快,比访问GMEM快得多。

L1 Cache拥有两个功能,一个是用于SM上Core之间相互共享内存,另一个则是普通的cache功能。当Core需要协同工作,编译器编译后的指令会将部分结果储存在共享内存中,以便于不同的core获取到对应数据。当用做普通cache功能的时候,当core需要访问GMEM数据的时候,首先会在L1中查找,如果没找到,则回去L2 cache中寻找 ,如果L2 cache也没有, 则会从GMEM中获取数据,L1访问最快 ,L2 其次,GMEM最慢

GPU未来硬件升级

更多运算单元;

更多存储空间;

更高并发;

更高带宽;

更低延时;

che中寻找 ,如果L2 cache也没有, 则会从GMEM**中获取数据,L1访问最快 ,L2 其次,GMEM最慢

GPU未来硬件升级

更多运算单元;

更多存储空间;

更高并发;

更高带宽;

更低延时;

… …

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rvosuke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值