显卡的一些总结

news/2024/11/22 18:25:36/

0.显卡架构

在这里插入图片描述

1.浮点数在计算机内存中的存储方式(FP32, FP64)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.FP32 & TF32

在这里插入图片描述

  • TF32 采用了与半精度( FP16 )数学相同的10 位尾数位精度,这样的精度水平远高于AI 工作负载的精度要求,有足够的余量。同时, TF32 采用了与FP32 相同的8 位指数位,能够支持与其相同的数字范围。这样的组合使TF32 成为了代替FP32 ,进行单精度数学计算的绝佳替代品,尤其是用于大量的乘积累加计算,其是深度学习和许多HPC 应用的核心。借助于NVIDIA 函示库,用户无需修改代码,即可使其应用程式充分发挥TF32 的各种优势。TF32 Tensor Core 根据FP32 的输入进行计算,并生成FP32 格式的结果。目前,其他非矩阵计算仍然使用FP32 。
  • NVIDIA A100/Ampere安培架构 GPU 中的新数据类型,TF32 使用与半精度 (FP16) 数学相同的 10 位尾数,表明对于 AI 工作负载的精度要求有足够的余量。并且TF32采用与FP32相同的8位指数,因此可以支持相同的数值范围。

3.FLOPS计算

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

  • 英伟达Tesla A100核心采用台积电7N工艺,826mm2核心面积塞入542亿个晶体管。108组SXM4架构的SM单元拥有6912个CUDA核心,核心Tensor Core虽然减少到432个,但性能大幅增强,支持全新的TF32运算。一个Tensor Core每个时钟可以完成 256 FP16/FP32 FMA 操作。每个SM中有1024个FMA独立计算单元,对应2048个独立的浮点运算,等效为2048个线程,A100总共108 SM,所以A100总共存在108*2048=221184个线程。
  • FP64,是指一个SM中的8*4=32个FP64 CUDA core对应的算力,108*32*2FLOP*1.41Ghz=9.7 TFLOPS。
  • FP16 Tensor core ,(108*4)*256*2FLOP*1.41Ghz=311 TFLOPS。
  • FP64 Tensor core ,(108*4)*256*2FLOP*1.41Ghz/16=19.5 TFLOPS。
    在这里插入图片描述
    在这里插入图片描述

4.tensor core和cuda core的区别

在这里插入图片描述

5.GPU和CPU内部

在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述



在这里插入图片描述

6.cuda、kernel、grid、block

  • GPU包括更多的运算核心,其特别适合数据并行的计算密集型任务,如大型矩阵运算,而CPU的运算核心较少,但是其可以实现复杂的逻辑运算,因此其适合控制密集型任务。另外,CPU上的线程是重量级的,上下文切换开销大,但是GPU由于存在很多核心,其线程是轻量级的。因此,基于CPU+GPU的异构计算平台可以优势互补,CPU负责处理逻辑复杂的串行程序,而GPU重点处理数据密集型的并行计算程序,从而发挥最大功效。
    在这里插入图片描述

  • CUDA是NVIDIA公司所开发的GPU编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序。
    在这里插入图片描述

  • CUDA编程模型是一个异构模型,需要CPU和GPU协同工作。在CUDA中,host和device是两个重要的概念,我们用host指代CPU及其内存,而用device指代GPU及其内存。CUDA程序中既包含host程序,又包含device程序,它们分别在CPU和GPU上运行。同时,host与device之间可以进行通信,这样它们之间可以进行数据拷贝。典型的CUDA程序的执行流程如下:

    • 分配host内存,并进行数据初始化;
    • 分配device内存,并从host将数据拷贝到device上;
    • 调用CUDA的核函数在device上完成指定的运算;
    • 将device上的运算结果拷贝到host上;
    • 释放device和host上分配的内存。
  • CUDA逻辑层

    • kernel是CUDA中一个重要的概念,kernel是在device上线程中并行执行的函数,核函数用__global__符号声明,在调用时需要用<<<grid, block>>>来指定kernel要执行的线程数量,在CUDA中,每一个线程都要执行核函数,并且每个线程会分配一个唯一的线程号thread ID。
    • kernel在device上执行时实际上是启动很多线程,一个kernel所启动的所有线程称为一个网格(grid),同一个网格上的线程共享相同的全局内存空间,grid是线程结构的第一层次,而网格又可以分为很多线程块(block),一个线程块里面包含很多线程,这是第二个层次。
      在这里插入图片描述
  • CUDA物理层

    • 一个kernel实际上会启动很多线程,这些线程是逻辑上并行的,但是在物理层却并不一定。这其实和CPU的多线程有类似之处,多线程如果没有多核支持,在物理层也是无法实现并行的。但是好在GPU存在很多CUDA核心,充分利用CUDA核心可以充分发挥GPU的并行计算能力。
    • GPU硬件的一个核心组件是SM,前面已经说过,SM是英文名是 Streaming Multiprocessor,翻译过来就是流式多处理器。SM的核心组件包括CUDA核心,共享内存,寄存器等,SM可以并发地执行数百个线程,并发能力就取决于SM所拥有的资源数。当一个kernel被执行时,它的gird中的线程块被分配到SM上,一个线程块只能在一个SM上被调度。SM一般可以调度多个线程块,这要看SM本身的能力。那么有可能一个kernel的各个线程块被分配多个SM,所以grid只是逻辑层,而SM才是执行的物理层。
    • SM采用的是SIMT (Single-Instruction, Multiple-Thread,单指令多线程)架构,基本的执行单元是线程束(wraps),线程束包含32个线程,这些线程同时执行相同的指令,但是每个线程都包含自己的指令地址计数器和寄存器状态,也有自己独立的执行路径。所以尽管线程束中的线程同时从同一程序地址执行,但是可能具有不同的行为,比如遇到了分支结构,一些线程可能进入这个分支,但是另外一些有可能不执行,它们只能死等,因为GPU规定线程束中所有线程在同一周期执行相同的指令,线程束分化会导致性能下降。
    • 当线程块被划分到某个SM上时,它将进一步划分为多个线程束,因为这才是SM的基本执行单元,但是一个SM同时并发的线程束数是有限的。这是因为资源限制,SM要为每个线程块分配共享内存,而也要为每个线程束中的线程分配独立的寄存器。所以SM的配置会影响其所支持的线程块和线程束并发数量。总之,就是网格和线程块只是逻辑划分,一个kernel的所有线程其实在物理层是不一定同时并发的。所以kernel的grid和block的配置不同,性能会出现差异,这点是要特别注意的。
      还有,由于SM的基本执行单元是包含32个线程的线程束,所以block大小一般要设置为32的倍数。
      在这里插入图片描述在这里插入图片描述

http://www.ppmy.cn/news/172766.html

相关文章

AMD显卡透传

哈哈哈&#xff0c;最近终于把AMD显卡透传做完了。小论文已经写完。超级开心&#xff01;&#xff01;&#xff01;下面附上我的显卡透传步骤&#xff1a; Step by Step: HardwareGPU: AMD Firepro W2100 CPU: Intel Core™ i3-6100 CPU 3.70GHz MEM: 32G SSD: 480G OS: Cen…

双显卡同时显示多个显示屏

Nvidia驱动下载地址&#xff1a;https://www.geforce.cn/drivers&#xff0c;安装时只需要一直下一步就可以。 &#xff08;1&#xff09;简要介绍 主板如果支持sli或交火&#xff0c;提供两根PCI-EX16的卡槽是可以支持插两个显卡的同时工作的&#xff0c;将显卡插到主板PCI-E…

集成显卡 独立显卡 带 双显示器

1.可能出现集成显卡的显示器不亮的时候 首先安装集成显卡的驱动&#xff0c;然后重启进入bios系统&#xff08;启动时F10或者F12&#xff09;&#xff0c;将集成显卡显示器的设置打开&#xff0c;保存启动就可以了

多屏卡、多头显卡

-------- 多屏卡(多頭卡/多頭顯示卡)知識概述 何為“多屏卡”&#xff1f; 多屏幕顯示卡是一種特殊的顯示卡&#xff0c;叫法不一&#xff0c;如&#xff1a;多屏卡&#xff08;Multi screen&#xff09;、多屏幕顯示卡、多頭卡&#xff08;Multi head&#xff09;、多頭顯示…

台式计算机怎么设置,台式机双显卡怎么设置

原标题&#xff1a;台式机双显卡怎么设置 【哈哈IT网 】如今大多数电脑都有这样一个特征&#xff1a;CPU集成核心显卡、外加电脑中还配备独立显卡&#xff0c;这样的电脑就拥有双显卡&#xff0c;正常情况下&#xff0c;双显卡会自动切换智能运行。不过&#xff0c;由于CPU集成…

【硬件篇】显卡五连问

问题一&#xff1a;NVIDIA显卡驱动是什么&#xff1f; 答&#xff1a;显卡驱动就是用来驱动显卡的程序&#xff0c;它是硬件所对应的软件&#xff0c;一台电脑如果没有显卡驱动程序会导致显卡无法正常工作。 问题二&#xff1a;那显卡又是什么&#xff1f; 答&#xff1a;显卡…

【显卡】一文搞懂显卡

【显卡】一文搞懂显卡 文章目录 【显卡】一文搞懂显卡1. 前言介绍1.1 CPU和显卡的区别1.1.1 作用不同1.1.2 结构不同1.1.3 应用场景不同 1.2 三个著名的显卡公司 2. 显卡的工作原理3. 显卡的分类3.1 集成显卡3.2 独立显卡3.3 核芯显卡 4. 结构 & 总线接口类型4.1 显卡的结构…