大白话解释Nvidia(英伟达)的GPU卡算力是怎么算出来的

388 阅读3分钟

大白话解释Nvidia GPU卡算力是怎么算出来的

在解释算力公式之前,先说明几个关键名词TFLOPS(万亿次浮点运算每秒)、TOPS(万亿次操作每秒)

一、名词介绍

  • TFLOPS:中文翻译“万亿次浮点运算每秒”,浮点运算就是计算机做小数运算的一种方式,在很多复杂的计算任务中,比如科学研究、图形渲染、人工智能训练等,都需要进行大量的小数运算。TFLOPS 这个指标就是用来衡量计算机硬件(像 CPU、GPU 等)在一秒钟内能够完成多少万亿次这样的浮点运算。这个数值越高,说明硬件的计算能力越强,能更快地完成复杂的计算任务。所以,TFLOPS的高低直接决定了处理器的计算效率和速度。

  • TOPS:中文翻译“ “万亿次操作每秒”。这里的 “操作” 可以是各种类型的计算操作,不仅仅是浮点运算,还包括整数运算、逻辑运算等其他类型的运算。特别适合在人工智能领域,因为许多人工智能任务,如推理和图像识别,依赖于高效的整数运算,TOPS的高低反映了处理器在处理这些任务时的能力。

    两者区别一句话:

    TTFLOPS关注浮点运算,适用于需要高精度计算的场景;而TOPS关注整数或定点数运算,更适合于低精度、高效率的人工智能任务。此外,TFLOPS通常用于GPU性能评估,而TOPS则更多地用于NPU或专用AI芯片的性能评估。

    除了TFLOPS,浮点运算还有其他类似性能指标:

    序号性能指标说明
    1MFLOPS每秒百万次浮点运算
    2GFLOPS每秒十亿次浮点运算
    3TFLOPS每秒万亿次浮点运算
    4PFLOPS每秒千万亿次浮点运算

比如英伟达A100是一款专为AI和高性能计算设计的显卡,其算力高达312 TFLOPS(每秒万亿次浮点运算),换算成TOPS(每秒万亿次操作)则为1252 TOPS

  • CUDA 核心数:

    CUDA 核心是 Nvidia GPU 中的一种处理单元,CUDA 核心数越多,GPU 的计算能力越高;

  • 时钟频率

    时钟频率是指 GPU 的处理单元可以执行的最大运算次数

二、Nvidia GPU卡算力计算

Nvidia GPU 的计算能力主要受CUDA 核心数、时钟频率、内存带宽、浮点运算能力等因素影响

我们采用CUDA核心计算法,计算公式:

GPU算力(Flops)=CUDA核心数 × ×每核心单个周期浮点计算系数

以A100为例,A100有几个核心参数:

CUDA核心数:6912个(即108×64) ,即108个SM(流多处理器),每个SM包含64个CUDA核心

GPU主频:1.41 GHz(1410MHz)

GPU每核心单个周期浮点计算系数是:2(Tensor Core里面的是融合乘加指令,所以一次指令执行会计算2次(即1次乘法,1次加法))

那么FP32单精度算力=6912x1.41x2=19491.84 GFLOPS=19.5TFLOPS

FP64的双精度算力=FP32单精度算力/2=9.7Tflops

那Tensor Core算力又是怎么算出来的?还是以A100为例,A100Tensor(FP16 算力)官方40GB版本是312TFLOPS,80GB内存版本是624

Tensor算力公式:

Tensor算力(FP16 算力)=SM个数x GPU主频 x SM每个Clock能处理的MACs x 2(因为是乘加各一次,所以是)

A100是Ampere架构,MACs (Multiply-Accumulate Operations)值:1024(稠密),2048(稀疏)

MACs =Tensor Core数*Tensor 吞吐量

A100 ,每个SM有4个Tensor Core/SM,每个Tensor Core/ Clock=256

代入公式,得出MACs值 =1024

image-20250419175052404

代入公式,Tensor算力结算为:

A100的Tensor算力=108x1.41x1024x2=311869GFLOPS=312TFLOPS