[深度学习] GPU处理能力(TFLOPS/TOPS)

news/2024/7/7 16:05:58

计算能力换算


理论峰值 = GPU芯片数量GPU Boost主频核心数量*单个时钟周期内能处理的浮点计算次数

只不过在GPU里单精度和双精度的浮点计算能力需要分开计算,以最新的Tesla P100为例:

双精度理论峰值 = FP64 Cores * GPU Boost Clock * 2 = 1792 *1.48GHz*2 = 5.3 TFlops

单精度理论峰值 = FP32 cores * GPU Boost Clock * 2 = 3584 * 1.58GHz * 2 = 10.6 TFlop
 

TFLOPS

FLOPS是Floating-point Operations Per Second的缩写,代表每秒所执行的浮点运算次数。现在衡量计算能力的标准是TFLOPS(每秒万亿次浮点运算)

NVIDIA显卡算力表:https://developer.nvidia.com/cuda-gpus#compute

但是现在衡量计算速度的标准是TFLOPS**(每秒万亿次浮点运算),注意GPU它是浮点运算。
重点就是关注它的flops是怎么计算的。

GPU设备的单精度计算能力的理论峰值计算公式:

单精度计算能力的峰值 = 单核单周期计算次数 × 处理核个数 × 主频

例如: 以GTX680为例, 单核一个时钟周期单精度计算次数为两次,处理核个数 为1536, 主频为1006MHZ,那他的计算能力的峰值P 为:

P = 2 × 1536 × 1006MHZ = 3.09TFLOPS

这里1MHZ = 1000000HZ, 1T为1兆,也就是说,GTX680每秒可以进行超过3兆次的单精度运算。

各种FLOPS的含义
MFLOPS (megaFLOPS):每秒一百万 (=10^6) 次的浮点运算

GFLOPS (gigaFLOPS) :每秒十亿 (=10^9) 次的浮点运算

TFLOPS (teraFLOPS) :每秒一万亿 (=10^12) 次的浮点运算

PFLOPS (petaFLOPS) :每秒一千万亿 (=10^15) 次的浮点运算

补充:
算力单位

TOPS(Tera Operations Per Second:)1TOPS处理器每秒钟可进行一万亿次(10^12)操作。

GOPS(Giga Operations Per Second):1GOPS处理器每秒钟可进行一亿次(10^9)操作。

MOPS(Million Operation Per Second):1MOPS处理器每秒钟可进行一百万次(10^6)操作。

在某些情况下,还使用 TOPS/W 来作为评价处理器运算能力的一个性能指标,TOPS/W 用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。

FP32 = float32 单精度浮点格式

IEEE 754-2008 标准指定了额外的浮点类型,例如 64 位 base-2双精度,以及最近的 base-10 表示。

TF32 = TensorFlow-32 英伟达提出的代替FP32的单精度浮点格式

NVIDIA A100/Ampere安培架构 GPU 中的新数据类型,TF32 使用与半精度 (FP16) 数学相同的 10 位尾数,表明对于 AI 工作负载的精度要求有足够的余量。并且TF32采用与FP32相同的8位指数,因此可以支持相同的数值范围。

TF32 在性能、范围和精度上实现了平衡。

TF32 采用了与半精度( FP16 )数学相同的10 位尾数位精度,这样的精度水平远高于AI 工作负载的精度要求,有足够的余量。同时, TF32 采用了与FP32 相同的8 位指数位,能够支持与其相同的数字范围。

这样的组合使TF32 成为了代替FP32 ,进行单精度数学计算的绝佳替代品,尤其是用于大量的乘积累加计算,其是深度学习和许多HPC 应用的核心。

借助于NVIDIA 函示库,用户无需修改代码,即可使其应用程式充分发挥TF32 的各种优势。TF32 Tensor Core 根据FP32 的输入进行计算,并生成FP32 格式的结果。目前,其他非矩阵计算仍然使用FP32 。

为获得最佳性能, A100 还具有经过增强的16 位数学功能。它以两倍于TF32 的速度支持FP16 和Bfloat16 ( BF16 )。利用自动混合精度,用户只需几行代码就可以将性能再提高2 倍。

 

所以通过降低精度让TF32新单精度数据类型代替了FP32原有的单精度数据类型,从而减少了数据所占空间大小在同样的硬件条件下可以更多更快地运行。

 算力单位概述 - 知乎 (zhihu.com)

GPU运算能力对(2022.4.5更新)_gpu算力换算_敢敢のwings的博客-CSDN博客


http://lihuaxi.xjx100.cn/news/1401344.html

相关文章

配置GIt账号、配置公钥

1.设置账号和邮箱 打开终端输入以下命令: git config --global --unset-all user.name git config --global --unset-all user.email然后输入以下命令来设置新的账号和邮箱: git config --global user.name "your_username" git config --glo…

Python(五十八)什么是字典

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【Deepsort】C++版本Deepsort编译(依赖opencv,eigen3)

目录 下载源码安装onnxruntime安装Eigen3编译opencv 下载源码 https://github.com/shaoshengsong/DeepSORT安装onnxruntime 安装方法参考博客 安装Eigen3 当谈及线性代数计算库时,Eigen3是一个强大而受欢迎的选择。Eigen3是一个C模板库,提供了许多用…

偶数科技亮相第十届中国中小企业投融资交易会

第十届中国中小企业投融资交易会暨2023“小企业 大梦想”高峰论坛近日在北京举办。本届大会以“金融活水精准滴灌 专精特新体制增量”为主题,通过展览展示、论坛活动、项目路演、产融对接等形式,搭建了专精特新企业与金融机构之间、与地方政府之间的产融…

LeetCode 822. 翻转卡片游戏

题目描述 在桌子上有 N 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 X 与任意一张卡片的正面的数字都不同&…

【iOS】GCD深入学习

关于GCD和队列的简单介绍请看:【iOS】GCD学习 本篇主要介绍GCD中的方法。 栅栏方法:dispatch_barrier_async 我们有时候需要异步执行两组操作,而且第一组操作执行完之后,才能开始执行第二组操作,当然操作组里也可以包含一个或者…

linux监控java进程的cpu和线程快照脚本

java进程的cpu和线程快照一般都会接入监控平台进行监控和查看,也可以通过命令在服务器查看:top -b -n 1 -Hp pid > 1.top && jstack pid > 1.stack,当然也可以通过shell脚本的方式将cpu和jstack指标记录输出到文件。 #每隔5秒…

Python web实战之 Django 的 MVC 设计模式详解

技术栈:Python、Django、HTML、CSS、JavaScript。 概要 在 Web 开发中,MVC(Model-View-Controller)模式是一种非常常见的设计模式,它可以帮助我们更好地管理代码,提高代码的可维护性。今天就介绍如何使用 …