【智算中心】GPU是如何改变世界的

news2024/11/19 3:23:16

在这里插入图片描述
现在有市场消息表示,NVIDIA正计划减少A800 GPU的产量,以促进其更高端的H800 GPU 的销售。很显然NVIDIA是希望从H800 GPU上获得更多销售量,从中国市场获得更多利益。而且最近一段时间有传闻美国要彻底封杀AI芯片的出口,让国内甚至连A100和H800都无法买到,所以受到这个传闻的影响,国内厂商这段时间疯狂采购NVIDIA的GPU,而现在NVIDIA减产A800,同时将产能重心转向H800,很显然是看准了国内厂商的需求,想借此大赚。

之前NVIDIA并没有在国内大量推销H800,主要是让国内公司根据自己需求选购,所以国内公司都更愿意购买A800,毕竟H800售价 25万。不过现在美国彻底封杀AI芯片出口的传闻散播出来,NVIDIA又大大降低了A800的产能,这使得中国厂商不得不转而购买H800 GPU。

H800采用全新的Hopper架构,拥有最高可达 18432 个FP32(单精度)CUDA核心和 9216 个FP64(双精度)CUDA核心,以及576个第四代张量核心。运算能力方面:FP64性能 34 TFlops(34万亿次/秒),FP64 Tensor Core性能 67 TFlops,TF32性能 989 TFlops,FP16 Tensor Core性能 1979 TFlops,INT8性能 3958 TOPS

看到上面的参数你是否和我一样存有疑惑,CPU为什么只看核心数、主频或者缓存大小而GPU有这么多参数?下面我们就来解读一下GPU这些参数。

文章目录

  • Hopper架构核心数
  • GPU算力是如何计算的呢?
  • 张量核心(Tensor Core )
  • GPU这么牛!我们还需要CPU吗?


Hopper架构核心数

Hopper架构基本结构

Hopper架构基本结构

流式多处理器SM

流式多处理器SM

一个H800芯片有8组GPC(图形处理器集群),每个又由9个TPC(纹理处理器集群)组成,GPC之间通过L2缓存共享中间数据,GPC计算的中间数据通过NVLink与其他GPU连接/交换。每个TPC由两个SM(流式多处理器)组成。每组SM有128个FP32 CUDA核心,总计18432个。每组SM有64个FP64 CUDA核心,总计9216个。

i9 CPU也只有24核心,那GPU的运算速度快也是无可厚非的。

GPU算力是如何计算的呢?

GPU的性能取决于内存带宽、内存访问模式、并联方式、组网带宽、算法并行性等多个因素,所以GPU算力的计算可以分为理论浮点运算峰值计算能力实际应用性能

不同精度核心是固定的,就可以确定在某个精度下的算力了,那我们就可以算出H800的FP64(双精度)算力,已知Hopper架构GPU主频 1.89 GHz,GPU每核心单个周期浮点计算系数是2,从上面我们又知道Hopper架构拥有9216个FP64 CUDA核心。

每一个 SM 的两个 warp(线程束)调度单元和两个指令分发单元,允许同时启动和执行两个 warp。Fermi 双 warp 调度机制可以同时启动两个 warp 。

H800的FP64(双精度)理论峰值算力
= 9216 x 1.89 x 2 = 34836.48 GFlops = 34 TFlops。

由于Hopper架构不同版本的卡核心数略有不同,比如PCIe 5.0版本,SM虽然还是128组,但是CUDA核心只有14952个,所以算力也有所不同。

i9 处理器有 24 核心,基础频率为 3.3 GHz,36 线程,AVX2 每时钟周期的单精度运算次数 32, 每时钟周期的双精度运算次数 16。

i9的FP64(双精度)理论峰值算力
= 24 x 3.3 x 16 = 1267.2 GFlops = 1.2 TFlops。

单个处理器的运算速度超过 1TFLOP,和H800的 34 TFlops相比差距还是非常大的。

浮点数的规格不同,算力载体不同,算力差异是非常巨大的。这里我们要引入另一个概念,通用计算、智算和超算:

  • 通用计算算力:FP32(单精度)算力
  • AI智算算力:FP16(半精度)算力
  • 超算算力:FP64(双精度)算力

《【智算中心】国产GPU横向对比》 中我们也讲到,当前国产GPU还无法达到英伟达通用GPU的能力,只能侧重于某一个方向,比如昇腾910只支持FP16及一下精度,海光DCU却侧重于FP64超算领域。

张量核心(Tensor Core )

在这里插入图片描述

Tensor Core 可实现混合精度计算,并能根据精度的降低动态调整算力,在保持准确性的同时提高吞吐量。

TF32 = TensorFlow-32 英伟达提出的代替FP32的单精度浮点格式
早在NVIDIA A100/Ampere安培架构 GPU 中的就引入了新数据类型,TF32 使用与半精度 (FP16) 数学相同的 10 位尾数,表明对于 AI 工作负载的精度要求有足够的余量。并且TF32采用与FP32相同的8位指数,因此可以支持相同的数值范围。使TF32 在性能、范围和精度上实现了平衡

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

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

为获得最佳性能,A100 还具有经过增强的16 位数学功能。它以两倍于TF32 的速度支持FP16 和Bfloat16(BF16)。利用自动混合精度。

GPU这么牛!我们还需要CPU吗?

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

于是CPU和GPU就呈现出非常不同的架构(示意图):

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

CPU由算术逻辑单元(ALU)、控制器(Control )和寄存器(Cache)及实现它们之间联系的数据、控制及状态的总线(DRAM)构成。CPU内核必须处理计算机所做的每一个操作,计算、内存获取、IO、中断,因此它有一个庞大的复杂指令集。要实现指令集,您需要更多的逻辑,因此与 GPU 相比,更多的晶体管每个核心的成本更高。

GPU的特点是有很多的ALU和更少的缓存内存、更简单的指令和更低的每时钟时钟速率,但它们经过优化,可以作为一个组进行更多计算。指令集越简单,缓存越少,每个内核的成本就越低。

所以CPU擅长逻辑控制,串行的运算。而GPU擅长做简单的、重复的,大规模并发计算,应用场景不同,短期内也不存在替代之说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li

错误: 错误原因:没有删除之前安装的依赖问题 解决办法: yum remove mysql-libs 再用下面指令检查一遍: rpm -qa | grep mysql 如果有还未清理的,用下面指令: rpm -e xxx

Huawei AP 3030DN Fit转换Fat

一、FTP软件下载与安装 二、下载bin文件,AP系统用 三、终端连接AP 四、传送文件 五、升级AP system-view ap-mode-switch prepareap-mode-switch check system-view ap-mode-switch prepare ap-mode-switch check ap-mode-switch ftp 3030dn.bin 172.21.1.250 t…

windows环境 pip安装mysqlclient失败问题记录及解决方案

1.问题记录 > pip install -i https://pypi.douban.com/simple mysqlclient Looking in indexes: https://pypi.douban.com/simple Collecting mysqlclientUsing cached https://pypi.doubanio.com/packages/50/5f/eac919b88b9df39bbe4a855f136d58f80d191cfea34a3dcf96bf5d…

半导体企业如何进行跨网数据传输,又能保护核心数据安全?

为了保护设计文档、代码文件等内部核心数据,集成电路半导体企业一般会将内部隔离成多个网络,比如研发网、办公网、生产网、测试网等。常规采取的网络隔离手段如下: 1、云桌面隔离:一方面实现数据不落地,终端数据安全有…

学习JAVA打卡第四十二天

正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。 注:由于“ ”代表任何一个字符,所以在正则表达式中如果想使用普…

【PLSQL】PLSQL学习笔记

文章目录 一:记录类型1.语法2.代码实例 二:字符转换三:%TYPE和%ROWTYPE1.%TYPE2.%ROWTYPE 四:循环1.LOOP2.WHILE(推荐)3.数字式循环 五:游标1.游标定义及读取2.游标属性3.NO_DATA_FOUND和%NOTFO…

抖音web主页视频爬虫

需要抖音主页视频爬虫源码的发私信,小偿即可获得长期有效的采集程序。 比构造 s_v_web_id 验证滑块的方法更快,更稳定。

SELinux 入门 pt.2

哈喽大家好,我是咸鱼 在《SELinux 入门 pt.1》中,咸鱼向各位小伙伴介绍了 SELinux 所使用的 MAC 模型、以及几个重要的概念(主体、目标、策略、安全上下文) 我们还讲到: 对于受 SELinux 管制的进程,会先…

React 全栈体系(三)

第二章 React面向组件编程 四、组件三大核心属性3: refs与事件处理 1. 效果 需求: 自定义组件, 功能说明如下: 点击按钮, 提示第一个输入框中的值当第2个输入框失去焦点时, 提示这个输入框中的值 2. 理解 组件内的标签可以定义ref属性来标识自己 3. 编码 3.1 字符串形式…

【javaweb】学习日记Day7 - Mysql 数据库 DQL 多表设计

之前学习过的SQL语句笔记总结戳这里→【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用_Roye_ack的博客-CSDN博客 目录 一、DQL 数据查询 1、基本查询 2、条件查询 3、分组查询 (1)聚合函数 ① count函数 ② max min avg sum函数 &…

无涯教程-进程 - 管道(Pipes)

管道是两个或多个相关进程之间的通信介质,它可以在一个进程内,也可以在子进程与父进程之间进行通信。 可以实时查看管道机制,例如用管道将水填充到某个容器(例如桶)中,然后取回某人(例如用杯子)。填充进程只不过是写入管道&#…

【无标题】jenkins消息模板(飞书)

这里写目录标题 Jenkins 安装的插件 发送消息到飞书预览 1 (单Job)预览 2 (多Job,概览) Jenkins 安装的插件 插件名称作用Rebuilder Rebuilder。 官方地址:https://plugins.jenkins.io/rebuild 安装方式&a…

软件研发CI/CD流水线图解

当谈到现代软件开发流程时,持续集成(Continuous Integration,简称CI)和持续交付(Continuous Delivery,简称CD)是两个关键的实践。它们旨在加速开发流程、提高软件质量,并使软件发布更…

java八股文面试[JVM]——元空间

JAVA8为什么要增加元空间 为什么要移除永久代? 知识来源: 【2023年面试】JVM8为什么要增加元空间_哔哩哔哩_bilibili

shopee开店后店铺怎么运营?这几点运营技巧要学会!

Shopee卖家开店后,这几点运营技巧要学会! 1.Listing上架 产品在上架前,卖家要为主打产品需要精细化打造好文案和图片后再上传,尽量不要随意上架或者等到上架后再优化,避免浪费了新品最佳流量时期。 卖家可以从标题、…

【基于Arduino的仿生蚂蚁机器人】

【基于Arduino的仿生蚂蚁机器人】 1. 概述2. Arduino六足位移台–蚂蚁机器人3D模型3. 3D 打印零件4. 组装Arduino六足位移台5. Arduino蚂蚁机器人电路图6. 为Arduino Hexapod设计PCB7. 组装电路板8. 系统代码9. Arduino蚂蚁机器人安卓应用程序在本教程中,我将向您展示如何构建…

Total Uninstall | Windows 专业卸载清理工具

前言:Total Uninstall PC 专业卸载清理工具:彻底清除软件痕迹的神器 在日常使用电脑的过程中,我们常常需要安装和卸载各种软件。然而,传统的卸载方法往往并不能彻底清除软件的痕迹,使得电脑逐渐变慢或者出现各种问题。…

Idea常用快捷键--让你代码效率提升一倍(一)

一、代码编辑相关快捷键 1.单行复制(实现快速创建多个对象)CtrlD 2.空出下一行 ShiftEnter 3.单行注释快捷键 ctrl / 4.快速构建构造函数,setter,getter、toString方法 AltInsert 4.显示快速修复和操作的菜单 altenter 5.格式化代码:C…

leetcode 767. Reorganize String(重组字符串)

重新排列字符串s中的字母,使得任意两个相邻的字母都不相同。 思路: 让相邻字母不同,能想到的办法是先把相同的字母排列, 然后在相同字母的缝隙中插入另一种字母。 比如"aab", 先把"a a"排出来,再…

Python“牵手”拼多多商品列表数据,关键词搜索拼多多API接口数据,拼多多API接口申请指南

拼多多平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范,拼多多API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问拼多多平台的数据,包括商品信息、店铺信息、物流信息等,从而实现拼…