做外贸到那个网站,石家庄免费网站建设,吴江区建设用地申报网站,搜集10个优秀网站本系列目录
《带你自学大语言模型》系列部分目录及计划#xff0c;完整版目录见#xff1a;带你自学大语言模型系列 —— 前言
第一部分 走进大语言模型#xff08;科普向#xff09;
第一章 走进大语言模型 1.1 从图灵机到GPT#xff0c;人工智能经历了什么#xff1…本系列目录
《带你自学大语言模型》系列部分目录及计划完整版目录见带你自学大语言模型系列 —— 前言
第一部分 走进大语言模型科普向
第一章 走进大语言模型 1.1 从图灵机到GPT人工智能经历了什么——《带你自学大语言模型》系列 1.2 如何让机器说人话万字长文回顾自然语言处理NLP的前世今生 —— 《带你自学大语言模型》系列 第三节 Transformer做对了什么 第四节 大语言模型大在哪 … …
第二部分 构建大语言模型技术向
第二章 基础知识 2.1 大语言模型的训练过程 —— 《带你自学大语言模型》系列 第二节 大模型理论基础Transformer 第三节 大模型硬件基础AI芯片 本篇 第三章 预训练 … …
欢迎关注同名公众号【陌北有棵树】关注AI最新技术与资讯。
前言大模型Infra体系概览
虽然如今大模型很火但从整个AI产业上下游来看大模型只不过是其中的一环。另外不是所有人都能去做大模型算法方面的研发大部分人其实连入门资格都没有。所以我们在学习的时候不能认为大模型只靠牛逼的算法就ok了算法、算力、数据三者都必不可少。
或许你会问那我去做应用行不行应用侧的确有很大的市场但目前只有两种情况是适合做应用了一是你是一个创业者能承担风险你这时候不入局去搏一搏机会就被别人抢走了二是你之前本身就有业务用AI来赋能你的业务场景这两种人注定是要跟着AI的技术变革来承受起起伏伏的因为欲戴王冠必承其重。但如果你只是想平平稳稳的做一个大模型时代的业务开发工程师类似于互联网时代的Java开发Go开发PHP开发这种恕我直言繁荣的时候还没到。
现在大模型对厂商对模型的控制力还是太强了导致上层应用能做的事情十分有限也可以说太薄了只能调一调现有模型的API调一调Prompt用一用RAG这必然导致的结果是云厂商的话语权变得很大最近一直在吵所谓的“端到端”、“AI Native”、“MaaS”其实都是一个意思想达到让开发者用大模型就像现在用操作系统一样但显然现在这个操作系统能让开发者控制的地方还太少在我看来这不会是终态。
这也就是为什么大模型火了这么久但是最赚钱的却是英伟达的原因了。尤其是当模型变大之后以前模型参数和数据小单机就能跑但随着近年来大模型趋势成为共识Scaling Law被奉为圭臬算法工程师已经无法以一人之力完成大模型的训练部署需要系统工程师的配合。
之前做系统开发的同学 如果想搞大模型相关技术我倒觉得大模型Infra层其实是更合适的方向。如果类比于传统软件时代和云时代的分层架构当前所处的阶段是底层算力尚未满足需求中间层AI Infra尚在建设中未形成体系和标准。
根据中国信通院《AI框架发展白皮书》里面对AI体系的划分将AI框架划分为基础层、组件层、生态层大模型只是生态层的一种。
这里我根据大模型的技术栈整理了一张大模型生态中从上到下的技术栈从这张图你会看出现在炙手可热的大模型及其上层应用其实只是冰山漏出的一角下面的基础建设还远远没有定型和结束…
我们在学习的时候既要从上到下同时也要从下到上大模型能够run起来离不开底层的基础设施建设和开发框架的完善这个完全可以用互联网时代做个类比如果没有云计算的普及、Java开发生态的繁荣把应用门槛打下来怎么能支持那么多商业模式上的创新
目前算法工程师或者上层应用开发者只需要使用 AI 框架定义好的 API 使用高级编程语言如 Python 等去编写核心的神经网络模型算法而不需要关注底层的执行细节和对一个的代码。底层通过层层抽象提升了开发效率但是对系统研发却隐藏了众多细节需要 AI 系统开发的工程师进一步探究。
所以本节的目的是从下到上底层的GPU开始讨论为什么GPU的结构与AI最适配英伟达在GPU的基础硬件之上做了哪些技术优化确立了它的霸主地位
这一节里会涉及大量的技术概念所以这正可以验证我在 带你自学大语言模型系列 —— 前言 里提到的学习方法对于所有的技术点始终带着三个问题“这个技术是什么”“是为了解决什么问题”“是如何解决的”。
本节目录
2.3上篇
2.3.1 AI芯片概述 2.3.1.1 AI芯片分类2.3.1.2 AI芯片衡量指标2.3.2.3 设计一款AI芯片需要关注什么 2.3.3 GPU 2.3.3.1 从图形处理到AI加速2.3.3.3 GPU与CPU比较2.3.3.4 深度学习的计算模式2.3.3.4 为什么GPU适用于AI计算 2.3.4 英伟达的GPU架构 2.3.4.1 概述2.3.4.2 CUDA2.3.4.3 Tensor Core2.3.4.3 NVLink
2.3 下篇 2.3.5 NVDIA芯片发展历程 产品详解 2.3.6 其他AI芯片TPU、Groq… 2.3.7 国内芯片厂商华为昇腾、寒武纪、壁仞…
2.3.1 AI芯片概览
算力是AI发展的驱动力大模型时代更要格外关注算力。1960年以来计算机性能增长来于摩尔定律简单来说就是计算机性能每隔18-24个月会增加一倍。半个世纪以来摩尔定律一直推动芯片性能的重要动力。但近年来摩尔定理已呈现放缓态势与此同时芯片的运算能力还远远无法满足算法的运算需求。芯片性能需要每年提高10倍才能满足训练深度神经网络的需求。这个需求是巨大的但目前看来还难以满足。目前的大模型是个重资产行业底层竞争在于半导体产业AI的发展离不开芯片甚至可以说整个信息时代的发展都离不开芯片。
2.3.2.1 AI芯片的分类
从广义上讲只要能够运行人工智能算法的芯片都叫作 AI 芯片。但是通常意义上的 AI 芯片指的是针对人工智能算法做了特殊加速设计的芯片如GPU图形处理器、FPGA现场可编程门阵列和ASIC专用集成电路。
与AI 芯片相对应的是传统芯片以CPUCentral Processing Unit中央处理器为代表CPU是以任务顺序执行为目的设计的。而AI芯片的一个显著特点就是拥有强大的并行计算能力专注于同时处理多个任务。
从不同的视角AI芯片可以划分为不同的类别
【1】按功能划分 训练芯片主要负责数据处理和模型训练一般部署在云端。训练需要极高的计算性能需要较高的精度需要能处理海量的数据需要有一定的通用性以便完成各种各样的学习任务。推理芯片推理是指利用已训练好的模型进行实时推理与预测部署在云端或终端设备均可。推理相对来说对性能的要求并不高对精度要求也要更低在特定的场景下对通用性要求也低能完成特定任务即可不过推断芯片更注重综合指标 单位能耗算力、时延、成本等都要考虑。
【2】按部署场景划分 云端 AI 芯片性能强大能够支持大量运算和多种 AI 应用通常部署在数据中心中终端 AI 芯片主要用于训练和推理环节需要极大的数据量和大运算量通常部署在嵌入式设备或移动终端上
【3】按技术架构划分 GPU图形处理器适合大规模并行计算任务如图像识别、自然语言处理等但功耗较高FPGA现场可编程门阵列具有可编程性、低延时和高吞吐的特点适用于高速数据传输和逻辑运算但开发复杂度高且功耗相对较低ASIC专用集成电路针对特定算法定制性能和能效优势明显但前期研发时间长、投入成本高类脑芯片NPU模拟人脑神经网络结构适用于神经网络和机器学习任务
2.3.2.1 AI芯片的衡量指标
对于如何衡量一款芯片已经有了一套非常完善的指标体系。包括算力、精度、功耗、内存和带宽、成本等。
在介绍指标之前需要对芯片算力的相关计算单位做一个简单介绍
TOPSTera Operations Per Second表示每秒进行的万亿次操作。例如存算一体芯片可以达到1000TOPS以上的算力。FLOPSFloating Point Operations Per Second计算机浮点运算次数的量化单位用于描述计算机执行科学计算和AI任务的能力。常见的有GigaFLOPS十亿次浮点运算/秒、TeraFLOPS万亿次浮点运算/秒等。INT8、INT4、BF16、FP16、FP32、FP64这些是不同精度的浮点数计算能力分别代表不同的数值范围和精度。例如FP16半精度浮点数常用于需要较高计算效率的应用场景而FP64双精度浮点数则提供更高的计算精度。
下面介绍几个本节涉及的芯片衡量指标
算力
算力是评价AI芯片性能的核心要素。算力越高芯片的处理能力越强能够支持更复杂和大规模的AI模型训练和推理任务。算力通常以每秒浮点运算次数FLOPS或每秒操作次数OPS 为单位来表示。
精度
精度包括计算精度和模型结果精度。不同应用场景对计算精度的要求不同。例如在大模型训练中通常需要较高的精度如FP32以上而在模型推理中则可以使用较低精度如FP16或INT8以节省资资源。
基于运算数据精度不同算力可分为双精度算力FP64、单精度算力FP32、半精度算力FP16 及整型算力INT8、INT4。数字位数越高代表运算精度越高可支持的运算复杂程度越高以此适配更广泛的AI应用场景。
显存容量
显存用于存放模型数据显存越大所能运行的模型也就越大。显存容量通常以GB为单位。例如英伟达H200拥有141GB的显存而A100则提供40GB和80GB两个版本的显存。
显存带宽
显存带宽是指显存在单位时间内可以传输的数据量通常以GB/s或TB/s为单位。高带宽意味着更快的数据访问速度这对于需要快速读写大量数据的AI应用尤为重要。例如H200的显存带宽达到每秒4.8 TB而A100的80GB版本显存带宽为2039 GB/s
2.3.2.1 设计一款AI芯片需要关注什么
一个模型在AI芯片的执行过程中所做的事情无非就是搬运数据和计算数据。具体来说分为如下几步
将数据从外部存储搬到计算单元计算单元进行计算把结果搬回外部存储
所以相比于算力其实我们更应该关注的是**「内存、带宽、时延」与算力的匹配度**。也就是说哪怕算得再快但是内存来不及搬运增加的算力也发挥不了作用。
为了更直观描述这一情况我们引入一个概念 【计算强度】
计算强度Arithmetic Intensity是指在执行计算任务时所需的算术运算量与数据传输量之比。它是衡量计算任务的计算密集程度的重要指标可以帮助评估算法在不同硬件上的性能表现。通过计算强度可以更好地理解计算任务的特性有助于选择合适的优化策略和硬件配置以提高计算任务的性能表现。计算强度的公式如下
计算强度算术运算量数据传输量
以矩阵乘法为例对于一个 矩阵乘法操作可以计算其计算强度Arithmetic Intensity。
算术运算量对于两个 的矩阵相乘总共需要进行 次乘法和 次加法运算。因此总的算术运算量为 。数据传输量在矩阵乘法中需要从内存中读取两个输入矩阵和将结果矩阵写回内存。假设每个矩阵元素占据一个单位大小的内存空间则数据传输量可以估计为 包括读取两个输入矩阵和写入结果矩阵。
因此矩阵乘法的计算强度可以计算为
因此矩阵乘法的计算强度用时间复杂度表示为 随着相乘的两个矩阵的维度增大算力的需求将不断提高需要搬运的数据量也将越大算术强度也随之增大。下图展示了矩阵大小和计算强度之间的关系。横轴代表矩阵大小纵轴代表计算强度。
从蓝色线可以看出随着矩阵不断增大需要计算的强度越大
橙色线代表GPU在FP32精度下的计算强度两条线的交点就是GPU与矩阵最合适的区间也就是在矩阵大小在50~60之间能够充分发挥GPU在FP32精度下计算强度 随着矩阵继续增大数据搬运越来越慢内存数据的刷新变得越来越慢。后面提出的Tensor Core正是为了解决这一问题提高计算强度让数据搬运跟上运算的速度。图中红线展示的就是引入Tensor Core之后的计算强度与矩阵大小的平衡点已经达到了320.
除了精度会影响计算强度当Tensor Core在不同级别缓存下其计算强度与矩阵大小的交叉点也有所不同如下图所示每种存储和矩阵的计算强度分别对应一个交叉点由此可以看出数据在什么类型的存储中尤为重要。当数据搬运到L1缓存中时可以进行一些更小规模的矩阵运算比如卷积运算而对于Transformer结构可以将数据搬运到L2缓存进行计算。
同时数据运算和读取存在比例关系,如果数据都在搬运此时计算只能等待,导致二者不平衡,所以找到计算强度和矩阵大小的平衡点对于AI芯片的设计也是尤为重要。 2.3.2 GPU
2.3.2.1 从图形处理到AI加速
GPUGraphics Processing Unit图形处理器的最初应用场景并不是AI而是图像处理用于游戏和动画中的图形渲染任务。
1999年NVIDIA发布了GeForce 256这是第一款被正式称为“GPU”的产品。
2001年NVIDIA引入了可编程顶点着色器使得开发者可以执行更复杂的矩阵向量乘法、指数运算和平方根运算等操作。
2006年是个关键节点NVIDIA推出了CUDA架构这是一项革命性的技术使得GPU不仅能够进行高效的图形计算还能执行通用计算任务
但尽管如此当时还没有人将GPU用于深度学习2012年Hinton和Alex Krizhevsky设计的AlexNet是一个重要的突破他们利用两块英伟达GTX580GPU训练了两周将计算机图像识别的正确率提升了一个数量级并赢得了2012年ImageNet竞赛冠军。充分展示了GPU在加速神经网络模型训练中的巨大潜力。
随后英伟达继续发力推出了Tesla、Fermi、Kepler、Maxwell、Pascal、Volta、Turing和Ampere等GPU架构。
2.3.2.2 GPU与CPU比较
我们知道在处理器领域一直是CPU占据主导地位那么自然会提出一个疑问为什么CPU不能直接用于AI计算其实在早期AI计算的确是在CPU上进行。那为什么后来又转移到GPU呢
CPU自1971年诞生50年间已经发展为大规模复杂电路但核心主要是三个部分算术逻辑单元ALU、存储单元、控制单元。三个部分执行工作流的步骤如下
ALU用来完成数据计算其他模块则是为了保证指令能一条接一条执行这种通用的架构对于传统编程范式非常适合但正是由于这个顺序执行的原则计算能力受到限制尽管并行处理架构通过不同的数据流和指令流组合实现了计算性能的提升但还是达不到AI计算的性能要求。
CPU和GPU最大的区别在于它们的设计目标本质是不同的所以架构设计、应用场景才会相应的不同。
CPU的设计目标是希望加快指令的运算一个线程里完成一个指令运算所有的工作于是将重点投入到减少延迟上面所以一般采用的方式是优化线程效率
GPU的设计目标是最大化吞吐量相比比单任务执行快慢GPU更关心并行度同时可以执行多少任务所以GPU的设计重点是增加更多的线程GPU可用线程的数量是CPU的100多倍。
从应用场景上CPU处理的是操作系统和应用程序需要的各种计算任务需要通用性来处理不同类型的数据同时这类程序还存在大量的分支和跳转处理这些都导致CPU结构非常复杂。
GPU解决的问题主要集中在需要大量浮点运算和数据并行处理的领域如科学计算、机器学习、图像处理和视频编码等。这些问题通常在传统的CPU架构下难以高效解决因为它们要么需要大量的浮点运算要么需要同时处理大量数据。
目标和场景决定了架构设计下面这张图会十分明显的展示出GPU和CPU的区别CPU通常有4/8/16个强力ALU适合复杂通用的串行任务GPU则是有成百甚至上千个简单ALU单个ALU的能力会弱于CPU的ALU但适合多个ALU并行运算。 2.3.2.3 深度学习的计算模式
了解深度学习的计算模式才能找到GPU与AI时代的契合点到底在哪同时对于硬件的设计和优化也有着十分重要的作用。
神经网络中的最主要计算范式是【权重求和】无论是全连接、卷积网络、循环神经网络、注意力机制都没有绕开这个计算范式。权重求和占了神经网络90%的计算量。
权重求和的本质就是大规模矩阵乘法。
所以说矩阵乘法运算是AI模型中最重要的运算过程更准确的说是矩阵点的乘加运算这个过程的特点在于较高的内存搬运和计算密度并且每个计算任务都独立于其他计算任何计算都不依赖于其他计算结果可以采用高度并行的方式进行计算。
2.3.2.4 为什么GPU适用于AI计算
概括来说GPU通过以下两点支持了大规模的并行计算1通过超配的线程来掩盖时延2通过多级的缓存平衡计算和带宽之间的差距
超配的线程数量
我们通过三款芯片的详细数据来看需要多少线程才能解决内存的延时问题 从这张表可以看到几个下面几个关键数据
GPU的时延会比CPU高出4倍左右同时GPU的线程数量是CPU的20~30倍GPU的可用线程数量是CPU的100多倍。简单来说GPU拥有非常多的线程为大量大规模任务并行而设计的GPU将更多的资源都投入到如何增加线程数量而不是像CPU一样去优化线程执行效率、减少指令执行的延迟。
多级缓存
在GPU运算的过程中我们希望更多的减少内存时延、内存搬运等一系列操作所以缓存至关重要。
多级缓存的设计是为了减少对主内存的依赖从而降低延迟并提高数据传输速度。每一级缓存都有不同的访问速度和容量通常离用户越近的层级访问速度越快但容量越小而离用户越远的层级访问速度越慢但容量越大。
在GPU中多级缓存被设计为几个主要部分
L1 Cache位于每个流处理器SM内部具有较高的访问速度和较低的容量。L2 Cache共享给多个SM提供更大的容量和稍低的访问速度。寄存器文件每个SM拥有自己的寄存器文件用于存储临时计算结果访问速度最快
缓存层的设计使得GPU能够更有效地管理数据流减少数据传输时间并提高处理效率。例如在执行计算任务时多级缓存可以显著减少内存访问时间从而加快整个计算过程。
2.3.3 英伟达GPU架构
2.3.3.1 概述
对于芯片的架构各家芯片厂商都采用了不同的设计本节以NVIDIA的GPU架构为核心介绍GPU架构的关键技术
英伟达的GPU架构自2010年起从Fermi到Hopper 逐渐引入CUDA Core、Tensor Code、NVLink、NVSwitch等先进技术。
下图是一张英伟达A100的架构图我们先有一个直观的感受。 首先把GPU里面一些关键的概念列出来
GPC图形处理簇Graphics Processing ClustersTPC纹理处理簇Texture Processing ClustersSM流多处理器Stream MultiprocessorsHBM高带宽存储器High Bandwidth Memory
A100中包含8个GPC每个GPC中包含8个TPC每个TPC 包含两个 SM 单元SM 是 A100 芯片中的基本计算单元负责并行执行大量线程的指令。包括了CUDA Core、共享内存、寄存器等核心组件SM里面可以并发执行数百个线程。下图是单个SM的结构图 SM中具体包括下面这些组件这里暂时列出不做详细说明后面介绍技术细节时涉及到哪个组件会再细说
CUDA Core向量运行单元FP32-FPU、FP64-DPU、INT32-ALUTensor Core张量运算单元FP16、BF16、INT8、INT4Special Function Units特殊函数单元SFU用来支持各种数学函数例如正余弦等Warp Scheduler线程束调度器负责把线程下发到计算单元里面Dispatch Unit指令分发单元Multi level Cache多级缓存LO/LI Instruction Cache、LI Data Cache Shared MemoryRegister File寄存器堆;Load/Store访问存储单元LD/ST(负责数据处理);
2.3.3.2 CUDA
说起NVDIA不得不提的一项技术就是CUDACompute Unified Device Architecture。CUDA是英伟达在2006年11月发布的Tesla架构推出的一种并行计算平台和编程模型。 核心在于利用GPU的并行处理能力将GPU用作通用并行计算设备以加速各种计算任务。
可以从硬件和软件两个层面来理解CUDA在硬件层面通过改进GPU架构和提供灵活的内存管理机制显著提升了计算性能在软件层面则通过提供易用的编程模型、高级数学库和丰富的开发资源极大地简化了并行程序的开发和维护工作。具体如下
硬件层面CUDA提供一个高度并行的计算环境
统一渲染架构CUDA将传统的像素着色器和顶点着色器合并为一个统一的渲染架构从而提高了对大规模数据计算应用的支持能力。灵活的内存管理CUDA提供了高效的内存管理机制包括共享内存、全局内存等使得开发者可以更高效地利用GPU的高速带宽和大容量内存。多线程SIMD处理器CUDA通过多线程SIMD单指令多数据流处理器允许数千个线程同时执行极大地提升了计算效率。支持多种GPU型号CUDA从G80系列开始全面支持通用编程并且兼容所有NVIDIA的GeForce、Quadro和Tesla系列GPU这使得CUDA能够适用于各种不同需求的用户。
软件层面
CUDA的编程模型允许允许开发者使用C/C等编程语言在GPU上编写高效、可扩展的并行程序让开发人员更方便的控制GPU里面各种组件。CUDA提供了一套完整的工具链和开发环境包括编译器、链接器、调试器和各种库函数使开发者能够轻松地编写和优化并行程序。高级数学库CUDA内置了如CUFFTCUDA Fast Fourier Transform和CUBLASCUDA Basic Linear Algebra Subroutines等高级数学库这些库为复杂的科学计算和数据分析提供了强大的支持。异构计算支持CUDA不仅支持GPU还支持CPU、DPU和网络计算提供了一种灵活的系统软件组件帮助用户高效地部署、管理和优化大型异构系统。丰富的开发资源NVIDIA提供了大量的文档、教程和示例代码帮助开发者快速上手并解决实际问题。
其实对于NVDIA来说更重要的是通过CUDA实现了硬件和软件解耦从而让英伟达更方便的进行硬件的发展。
在了解CUDA工作原理之前需要对一些重要概念进行说明
线程是CUDA最重要的执行单位具体方式是将程序的执行划分为独立的线程块每个线程块并行执行。
为了数据的管理和通信问题CUDA引入Host主机 和Device设备 两个概念host代码部分在CPU上执行是普通的C代码当遇到数据并行处理的部分CUDA会将程序编译成GPU能执行的程序并传送到devicedevice代码在GPU上执行。
传送到GPU的程序被称作Kernel函数Kernel核是CUDA里面重要的一个概念。kernel 用 __global__ 符号声明在调用时需要用 grid, block 来指定 kernel 要执行及结构。
下图很好的展示了CUDA的线程结构
首先host遇到需要并行执行的代码将其编译Kernel函数传送到device。
那么device中是如何实现具体的并行计算的呢CUDA线程有明确的三层结构
第一层Kernel在Device执行时会启动多个线程一个Kernel执行启动的所有线程统称为一个Grid网格。
第二层一个Grid分为多个Block块每个块内有很多线程各个块之间的线程独立执行也不会互相通信。Block通过Warp进行调度。
第三层每个Block内部的多个线程可以同步并且可以通过共享内存通信。
2.3.3.3 Tensor Core
Tensor Core是在2017年的Volta架构中首次被提出自此之后英伟达的每次架构升级都不断对Tensor Core进行更新迭代。
在Tensor Core 发布之前CUDA Core是加速深度学习的关键硬件。CUDA Core在执行计算操作时,需要将数据在寄存器、算术逻辑单元(ALU)和寄存器之间进行多次搬运,这种过程既耗时又低效。此外每个CUDACore单个时钟周期只能执行一次运算而且CUDA Core的数量和时钟速度都有其物理限制这些因素共同限制了深度学习计算性能的提升。为了克服这一限制NVIDIA 开发了 Tensor Core。
Tensor Core主要解决了哪些问题呢主要有下面几个方面
【1】提高训练和推理速度Tensor Core 可以显著提升 AI 模型的训练和推理速度。例如Hopper架构中采用第四代Tensor Core已经将GPU的峰值性能相较未引入Tensor Core时提高了 60 倍在此基础上Blackwell 中采用第五代Tensor Core又可将万亿级参数生成式 AI 模型的训练速度提高 4 倍并将推理性能提升 30 倍。
具体来说相比于 FP32 Core 一次只能对两个数字进行计算一个Tensor Core可以在一个时钟周期内完整一个4×4矩阵的乘法和加法运算矩阵乘法的两个矩阵是FP16求和的矩阵可以是FP16或FP32。
通过硬件上的特殊设计Tensor Core 理论上可以实现 8 倍于 FP32 Core 的计算吞吐量这里指Volta 和 Turing 架构并且没有明显的占用面积和功耗增加。 【2】混合精度计算除了对矩阵乘加运算操作的原子化支持Tensor Core还从硬件底层支持了混合精度训练即在保持一定精度的同时动态调整算力以提高吞吐量。这种技术允许在较低精度如 FP16下进行计算同时输出仍为较高精度如 FP32从而在不损失太多准确性的前提下大幅提高计算效率。另外H100 GPU 配备了第四代 Tensor Core 和 Transformer 引擎支持 FP8 精度进一步提升了 AI 训练和推理的速度。
【3】Tensor Core 将传统的单一维度数字运算扩展到二维度的矩阵运算这使得其在处理大规模数据时更加高效。例如在 Tesla V100 上Tensor Core 能够实现最高 9 倍的峰值 TFLOPS 性能提升
【4】稀疏矩阵处理Tensor Core 还能够高效处理稀疏矩阵乘法SpMM这是许多深度学习算法中的一个常见挑战。通过灵活的稀疏块模式和动态可扩展的映射流Tensor Core 提供了更高的算法灵活性和硬件效率
2.3.3.4 NVLink
随着模型参数的不断增大分布式训练已经成为必然趋势这对底层的硬件和网络都带来了新的挑战。具体来说当训练采用大规模集群集群内的节点必须保证数据快速交换否则即使是再强大的GPU也会因为网络瓶颈的卡点而受限最终影响整个集群的性能。
关于分布式集群和通信的相关内容后面会有单独的章节介绍但不难看出底层网络通信效率成为重中之重。
早期的PCIe 由英特尔公司提出主要用于连接CPU与各类高速外围设备。2003年PCIe 1.0发布单通道250MB/s总带宽最高4GB/s到2022年 PCIe 6.0 发布单通道8GB/s总带宽最高128 GB/s。
根据上述数据可见传统的PCIe的带宽速率迭代跟不上AI系统的发展。
NVLink 正是为了解决这一问题NVLink是NVIDIA开发的一种专有高速互连技术主要用于连接多个GPU或GPU与CPU之间的通信。下图是NVLink各个版本的带宽数据。从图中可见2014年第一代NVLink的带宽就已经达到 160GB/s到2024年第五代NVLink每块GPU提供1.8TB/s的双向吞吐量总带宽超过1 PB/s。 NVLink采用点对点P2P结构和串行传输方式这意味着每个GPU通过独立的通道直接与其他GPU进行通信从而避免了中间节点的瓶颈问题。 从第一代到第五代NVLink经历了多次改进和升级。最初采用的是cube直连拓扑随后发展为Switch交换拓扑第三代增加了单卡的NVLink通道数以提升带宽第四代完善了多种协议内容而第五代则大幅提升了带宽并支持576个GPU之间的高速通信。 参考文献
[1] NVIDIA. NVIDIA A100 Tensor Core GPU Architecture[EB/OL]. [2020]. https://www.techpowerup.com/gpu-specs/docs/nvidia-ampere-architecture.pdf.
[2]NVIDIA. NVIDIA Tensor Core[EB/OL]. https://www.nvidia.cn/data-center/tensor-cores/.
[3]NVIDIA. What Is NVLink?[EB/OL]. https://blogs.nvidia.com/blog/what-is-nvidia-nvlink/.
[4]NVIDIA. CUDA C Programming Guide[EB/OL]. https://docs.nvidia.cn/cuda/pdf/CUDA_C_Programming_Guide.pdf.
[5] NVIDIA. NVIDIA Optimized Deep Learning Framework, powered by Apache MXNet[EB/OL]. https://docs.nvidia.com/deeplearning/frameworks/pdf/MXNet-Release-Notes.pdf. 文章转载自: http://www.morning.kpzrf.cn.gov.cn.kpzrf.cn http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn http://www.morning.xoaz.cn.gov.cn.xoaz.cn http://www.morning.pylpd.cn.gov.cn.pylpd.cn http://www.morning.clxpp.cn.gov.cn.clxpp.cn http://www.morning.rywn.cn.gov.cn.rywn.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.cczzyy.com.gov.cn.cczzyy.com http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn http://www.morning.fjglf.cn.gov.cn.fjglf.cn http://www.morning.wbrf.cn.gov.cn.wbrf.cn http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn http://www.morning.gprzp.cn.gov.cn.gprzp.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.swzpx.cn.gov.cn.swzpx.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.fbmjw.cn.gov.cn.fbmjw.cn http://www.morning.tblbr.cn.gov.cn.tblbr.cn http://www.morning.nkyqh.cn.gov.cn.nkyqh.cn http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn http://www.morning.tymnr.cn.gov.cn.tymnr.cn http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn http://www.morning.frcxx.cn.gov.cn.frcxx.cn http://www.morning.fgppj.cn.gov.cn.fgppj.cn http://www.morning.gjmbk.cn.gov.cn.gjmbk.cn http://www.morning.ssmhn.cn.gov.cn.ssmhn.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn http://www.morning.rgyts.cn.gov.cn.rgyts.cn http://www.morning.webpapua.com.gov.cn.webpapua.com http://www.morning.hengqilan.cn.gov.cn.hengqilan.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.bfycr.cn.gov.cn.bfycr.cn http://www.morning.flfdm.cn.gov.cn.flfdm.cn http://www.morning.yzygj.cn.gov.cn.yzygj.cn http://www.morning.flhnd.cn.gov.cn.flhnd.cn http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn http://www.morning.tbhf.cn.gov.cn.tbhf.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn http://www.morning.lblsx.cn.gov.cn.lblsx.cn http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.prmbb.cn.gov.cn.prmbb.cn http://www.morning.youyouling.cn.gov.cn.youyouling.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.pftjj.cn.gov.cn.pftjj.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.mzgq.cn.gov.cn.mzgq.cn http://www.morning.nkrmh.cn.gov.cn.nkrmh.cn http://www.morning.lnfkd.cn.gov.cn.lnfkd.cn http://www.morning.yqfdl.cn.gov.cn.yqfdl.cn http://www.morning.bwttj.cn.gov.cn.bwttj.cn http://www.morning.bbtn.cn.gov.cn.bbtn.cn http://www.morning.mprpx.cn.gov.cn.mprpx.cn http://www.morning.ppbqz.cn.gov.cn.ppbqz.cn http://www.morning.dbrdg.cn.gov.cn.dbrdg.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.ywrt.cn.gov.cn.ywrt.cn http://www.morning.lsfbb.cn.gov.cn.lsfbb.cn http://www.morning.bgzgq.cn.gov.cn.bgzgq.cn http://www.morning.qphdp.cn.gov.cn.qphdp.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn