- 2024-10-01
-
回复了主题帖:
GPU板卡算力调度、虚拟化调度及集群网络虚拟化设计实现--《大模型时代的基础架...
chejm 发表于 2024-10-1 07:20
支持一下楼主,分享的技术内容非常有学习价值,希望楼主继续分享更多内容
多谢支持!大家多交流,共同进步!
-
回复了主题帖:
一切为了加速机器学习,GPU之间数据交换和访问存储IO体系--《大模型时代的基础架构》
chejm 发表于 2024-10-1 07:00
支持一下楼主,感谢楼主提供的GpU相关的技术信息,非常详细,希望继续分享更多相关内容
感谢支持! 有机会大家多交流!
-
回复了主题帖:
适合机器学习的多GPU服务器设计--《大模型时代的基础架构》
chejm 发表于 2024-10-1 07:06
机器学习使用的大数据模型需要GpU服务器的强力支持,希望楼主继续分享更多相关技术信息,供大家学习
好的,有机会与大家多多交流这方面的内容。
- 2024-09-30
-
回复了主题帖:
AI时代的给力推手:GPU架构简介--《大模型时代的基础架构》第3章
hellokitty_bean 发表于 2024-9-19 15:53
撼动GPU地位的竞争对手还是蛮多的。。。。。。。。。只是黄有先发优势
是的,老黄做了这么久GPU了,在AI时代终于大获成功,锦上添花。
-
发表了主题帖:
GPU集群的存储设计实现--《大模型时代的基础架构》
本帖最后由 superleon123 于 2024-9-30 23:57 编辑
机器学习集群本质上是分布式实现的大型甚至巨型的计算系统。存储化设计决定了系统的数据持久性指标和性能指标。不同的业务需求又决定了不同类型的持久化存储的技术方案。存储方案包括以下方面:
1. 分布式块存储。
GPU板卡级调度和虚拟化调度技术都依赖于虚拟机。开发部署的机器学习应用及所需的各类运行库也需要被部署在虚拟机上。虚拟机包括两种方案:
1)本地盘:将本地机上的物理硬盘或一部分分配给虚拟机。
2)用整个集群可共享的云上块存储集群提供的块存储服务实例。
这两种方案还需要解决一些问题,于是业界推出了集中式与分布式块存储两种方案。集中式的方案是较为早期的方案,但存储控制器的数量有限,容量扩展也受限,于是分布式块存储应运而生。分布式块存储主要是使用具备大容量磁盘的工业标准服务器组成集群,通过多副本或纠删码(EC)实现存储的数据冗余备份。也称为云硬盘或云上块存储。分布式块存储还需要考虑故障恢复,如磁盘故障、一个或多个节点故障、集群分裂时,不引起服务中断和数据丢失。故障恢复包括原地恢复和迁移恢复两种方案。
分块式存储的性能优化,可以采用SSD作为缓冲层,HDD作为主存储介质,提升总体性能,达到性能与成本平衡。这种集群被称为“混闪存储集群”。
2. 分布式对象存储--海量非结构化数据存储。
一般用于Web静态资源和数据备份归档,数据能直接通过HTTP协议存取,用户可为自己的文件设定权限,自定义元数据,并支持海量数据的快速随机检索存取和冷热数据分层。业界推出了基于S3 (Simple Storage Service,简单存储服务)的产品,如阿里云的OSS,腾讯云的COS等。以及一些支持私有化部署的产品,如Ceph,Swift, MinIO等。
3. 分布式并发高性能存储==AI训练素材存储
机器学习需要海量数据训练来保证模型的准确性,并且满足海量并发访问的需求。若采用对象存储的方式,难以和深度学习的框架对接。Tensorflow采用标准的POSIX API,与HTTP的API不兼容。业界推出了为AI训练设计的高性能POSIX接口存储方案,如开源大数据鼻祖HDFS,长青松柏Lustre。
高性能文件存储需要采用全分布式设计,避免任何单节点的性能瓶颈。由于训练素材的特点,存储可以在文件数据冗余方面做适当的妥协,保证性能。
-
发表了主题帖:
GPU板卡算力调度、虚拟化调度及集群网络虚拟化设计实现--《大模型时代的基础架...
一、GPU板卡级算力调度
为AI建设的算力平台,不仅仅只用于单一的训练任务,还可以将GPU资源分配给不同的任务及客户使用。GPU调度系统可以基于现有的云计算技术构建,不必要再造一个“轮子”。可用于AI算力调度分配的云计算技术包括两类:
1. 基于虚拟化技术的GPU调度,如基于业界主流的KVM(Kernel-based Virtual Machine)技术,是Linux系统中的主流虚拟化技术。在KVM配合CPU的I/O虚拟化后,可以为每台虚拟机分配独占的GPU,配合其它硬件就能够在虚拟机上运行基于CUDA、Tensorflow等机器学习应用。
2. 基于容器技术的GPU调度。云原生是将应用拆分为微服务,将各微服务的可执行文件构建为容器镜像,以容器化方式运行,并接受Kubernetes等容器编排平台及Istio微服务智力组件相互配合进行调度。Kubernetes Device Plugin实际上是将这种特殊的文件设为某一容器独占使用,特殊文件对应的设备不限于GPU。将GPU调度给不同的微服务,能够实现一定程度的GPU复用。
二、GPU的虚拟化调度
由于GPU算力成本高昂,在提供GPU计算服务的云计算场景中,我们需要将一张GPU卡或者一颗GPU芯片提供给不同的应用甚至租户使用,这就需要GPU的虚拟化调度。
GPU虚拟化应当实现的需求有三点:
1) 硬件复用需求。如空分复用和时分复用两种不同的技术路线。
2) 隔离性需求。应用在使用硬件时,无法感知是独占环境还是虚拟化的环境,也不能越界访问其它虚拟化实例中的硬件资源。
3) 可运营需求。在多租户的平台上,运营方应当承诺各租户实际可得的资源量,并且可通过技术手段限制租户超量使用。
nVidia、AMD、Intel都推出了在现有GPU驱动层和硬件上加以改造的方案,如SRIOV、vCUDA、GRID vGPU、MIG等,但这些方案都有一些缺点,如规格受限、性能损耗较高等。腾讯云和阿里云也分别推出了qGPU和cGPU等方案,取得了更好的硬件兼容性、调度实时性和服务质量保障能力。
三、GPU集群的网络虚拟化设计与实现
运行机器学习业务,对GPU集群网络有一定的要求,就是采用网络隔离技术,通过网络隔离使每个租户都只能看到自己申请的GPU资源。技术手段包括以下方面:
1. VPC(Virtual Private Cloud)技术--网络虚拟化的基石
让不同租户的网络地址之间无法路由,可以让不同的租户使用重叠的内部地址,实现在租户的数据包流量的基础上做一层隧道封装,实现租户之间的网络隔离。VPC网络又称为“Overlay网络”。
2. 云负载平衡--机器学习网络的中流砥柱
主要使用NFV(Network Functions Virtualization)方式实现负载平衡。NFV指的是使用软件+工业标准服务器来实现负载均衡、防火墙或路由器等网络设备的功能,节约成本,提升扩展性。
3. 专线接入、对等连接与VPC网关。
4. NFV网关的实现与部署
-
发表了主题帖:
GPU集群网络的设计实现--《大模型时代的基础架构》
本帖最后由 superleon123 于 2024-9-30 23:51 编辑
在大模型时代的训练场景中,虽然单台GPU服务器的算力有了较大的提升,但是仍然可能无法满足日益增长的业务需求。此时,就需要将多台GPU服务器组成计算集群。
为了发挥GPU服务器集群的性能,需要为计算集群实现三张网络:RoCE计算网络、存储网络、业务网络。实现这三张网络,有两种方案。(注:RoCE是一种允许在以太网上执行RDMA的网络协议)
1. 是用IB(InfiniBand,无限带宽)技术实现RoCE(RDMA over Converged Ethernet,基于融合以太网的远程直接内存访问)计算网络,用以太网/IP网络实现存储网络和业务网络。但在成本和未来供应链安全方面都不是最优选择。
2. 所有网络均用以太网/IP网络实现,考虑合并存储网络和业务网络。随着RoCE网络的普及,更多的政府、企事业单位倾向于改方案。
三张网络的解决方案:
1. GPU集群中RoCE计算网络
一台nVidia DGX A100服务器为每个A100 GPU都配置了一个网卡,在调度时会一对一地绑定网卡给GPU。一台DGX A100服务器有8张网卡用于GPU互连。RoCE交换机需要为每台DGX A100服务器提供至少8个以太网接口。4台以内DGX A100互连时,一个32口的100G交换机就可以满足GPU互通的需求。如果多于4台,就需要对网络架构进行规划和设计,如在核心交换层采用更多接口的交换机等。如果超过256台,可以构建-接入-汇聚-核心的三层网络。
2. GPU集群中存储与业务网络的设计实现
在机器学习场景中,存储网络的设计需要考虑更深层次,业务网络的收敛比设计标准可以较为宽松。如果以太网接口只有2个,可以考虑将存储与业务网络合并,如果有多于两个接口,可以分离存储与业务网络。如自动驾驶的场景中,需要大量数据来训练,建议使用单独的存储网络,控制存储网络的收敛比不超过2:1。
3. GPU集群中带外管理监控网络的设计实现。
通过连接到各台服务器的IPMI接口(带外管理口),对服务器进行管理,如远程开关机、监控运行状态、维护、挂载设备等。
4. GPU集群中网络边界的设计实现
集群目的是对外提供服务,在规划设计时,应当为集群外部的访问提供网络通道。考虑到信息安全和IP地址资源等因素,应当为集群内外部网络进行一定程度的隔离。此外,在多租户共享GPU集群资源时,网络也需要支持多租户隔离的虚拟化Overlay网络,虚拟化网络对外服务,以及虚拟化网路哦之间的互通等。
注意: 业务网络需要与外部网络互通,RoCE网络和存储网络不需要与外部互通。
-
发表了主题帖:
一切为了加速机器学习,GPU之间数据交换和访问存储IO体系--《大模型时代的基础架构》
本帖最后由 superleon123 于 2024-9-30 11:33 编辑
为了实现分布式大规模机器学习,需要一个大型的分布式计算机系统。而输入输出(I/O)设计是影响分布式计算机系统处理性能的重要因素。常见的分布式I/O系统,有用于虚拟系统中的VirIO,用于高性能计算的HPFS,以及用于大数据平台的HDFS。对于机器学习,nVidia设计了一个名为Magum的I/O框架,顾名思义,Magum就是巨大的意思。其关键思想是GPU Direct,即让GPU用尽量短的路径实现直通。因为GPU之间进行数据交换时吞吐率很高,如果还要经过CPU的话,会造成延迟。在传统的计算机体系结构中,在PCI-E之间传输数据时,需要通过CPU搬运数据,消耗CPU的资源并增加传输延时,使用GPU Direct就能解决这个问题。
GPU Direct包括:
1)Direct Shared Memory (DSM)--服务器内部的GPU互通
GPU计算涉及大量数据的搬运,如果从系统内存到GPU内存都通过CPU来搬运数据,那CPU的负担就不小了。于是,nVidia推出了Direct Shared Memory技术,可以直接把数据从显存写到应用程序可以使用的用户态地址,在内存空间视图上实现了共享,避免了调用CPU对数据的再次访问与复制。减少了CPU的负担,减少了延时。
之后的GPU Direct P2P技术,增加了对同一 PCI-E总线上GPU之间的点对点直接读取和交换数据的支持。
2)Direct RDMA--跨服务器节点的GPU互通
因为NVlink和PCI-E总线无法实现跨服务器节点的GPU通信,所以一种名叫RDMA被设计出来,它能够绕过对端CPU,让对端网卡直接访问对端系统内存,是独立于TCP/IP协议栈的一个协议栈,由操作系统内核提供支持。
3) Direct Storage--GPU对存储的访问
因为传统的GPU从存储设备中获取数据方式,需要借助CPU的直接内存访问机制的介入,读取大量数据时,会占用CPU内部总线的资源。Direct Storage技术能绕过CPU,直接从NVMe SSD钟读取数据。
除了上述的三种技术以外,Magnum IO还有其它技术作支撑。总之,这些技术都是为了多GPU之间交换数据和访问存储,加速机器学习计算,提供高效率和低延时的保障。
-
发表了主题帖:
适合机器学习的多GPU服务器设计--《大模型时代的基础架构》
本帖最后由 superleon123 于 2024-9-30 10:49 编辑
在服务器的市场中,传统的服务器包括有工业标准服务器和关键应用服务器。工业标准服务器一般有以x86、AMD处理器等为主的机型,一般分为2路、4路(两个处理器或者4个处理器)。外形则有1U、2U、4U,甚至10U的刀片服务器,与相应的机柜配套使用。关键服务器以Power、SPARC、IA64等处理器为主,与x86、ARM等指令不兼容。但是可以支持32路或者更多路处理器,体积一般较大,可靠性高,适用于对可靠性要求高的应用场景。
在nVidia尚未推出服务器专用的Tesla系列GPU前,大部分GPU被用于工作站,或者区块链的节点(如俗称矿机的节点)。随着机器学习应用的普及,nVidia为了帮助更多的服务器厂商,重新设计了GPU服务器,包含了新的技术和理念。设计了以nVidia DGX为品牌的A100、H100等型号服务器。
DGX系列服务器采用了Intel和AMD处理器。在PCI-E总线、内存、NVLink、RDMA网卡和NVMe SSD等部件上,专为机器学习计算做了特殊的优化设计,实现了对GPU访问的三种通路。如下所述:
1) 在同一台服务器中,GPU与其它GPU如何通过NVlink快速交换数据。
2) 在同一台服务器中,GPU读写NVMe接口的SSD(固态硬盘)。
3) 与其它服务器的GPU通过RDMA网卡快速交换数据。
通过这些形式,可以满足分布式机器学习计算的需要,如数据并行和模型并行。并能在解决大型训练场景中,PB级别数据的读写与交换。
- 2024-09-19
-
回复了主题帖:
一起读《动手学深度学习(PyTorch版)》- 词汇、概念理解
这可是经典的教程。
-
回复了主题帖:
AI时代的给力推手:GPU架构简介--《大模型时代的基础架构》第3章
风尘流沙 发表于 2024-9-19 14:38
我个人认为GPU架构的显卡技术不久就会被淘汰掉,因为其自身的缺陷。
GPU缺点主要是功耗大,工作热量高。因为目前还有相当的用户需要图形加速的功能、如模型渲染之类的,包括设计人士以及游戏玩家,所以暂时还不能完全淘汰。如果只是需要单纯的加速计算,谷歌的TPU,以及现在嵌入PC的NPU芯片等都可以实现,那就可以不用GPU了。
-
回复了主题帖:
软硬件的结合--《大模型时代的基础架构-第2章》
freebsder 发表于 2024-9-19 13:56
OpenCL 还是没有太普及,很多年前刚出来的时候理念还是很牛逼,要把所有的计算部件统一起来。。。
是的,当时并行计算的理念还是很前卫的,随着多核cpu,多核GPU的不断发展,估计OpenCL还会进一步应用到更多的应用场景中。
-
发表了主题帖:
AI时代的给力推手:GPU架构简介--《大模型时代的基础架构》第3章
本帖最后由 superleon123 于 2024-9-19 10:39 编辑
:
英伟达的GPU新品发布得很快,观看老黄在发布会上手捧着的最新显卡时,俺心里可痒了。要是有财力,俺也要喊着:给我来十块八块显卡!然后,俺自己组装服务器:)。
英伟达显卡的型号有很多,如用于服务器的H100、A100等,还有个人用的40系列显卡。前些天,黑神话悟空的游戏在全世界火起来,促进了一波电脑硬件的升级潮,显卡更是炙手可热,一卡难求,价格也纷纷上涨。
GPU的组成架构其实不算复杂,由GPU芯片、内存、附属电路等构成。但是设计、生产芯片,这个需要有技术以及生产设备才能实现。目前的GPU主要采用PCI-E总线。英伟达显卡,还有个独门绝活(NVLink)--支持多显卡相连,这是英伟达领先竞争对手的优势之一(也就是说想要追上英伟达,得把显卡如何并联工作搞定)。
GPU包括通用计算单元(CUDA Core)和专用计算单元(Tensor Core)。英伟达的每一代的架构命名都来源于一位著名科学家的姓名,如Pascal, Turing, Volta,Ampere, Hopper。Hopper在排查计算机故障时,发现了故障是由于计算机内部的飞虫尸体导致的,于是以后计算机软硬件设计中的缺陷就称为“bug”了。新架构的GPU相比以前的架构,实质上是在增加计算单元的同时,优化计算单元并行工作的效率。要搭建人工智能/机器学习的计算系统,除了GPU,还需要CPU、内存、外置存储、通信网络等一系列周边部件。后续,我们再来研究GPU服务器及其集群网络的搭建。
-
发表了主题帖:
软硬件的结合--《大模型时代的基础架构-第2章》
本帖最后由 superleon123 于 2024-9-19 10:36 编辑
设计GPU进行并行计算,这个技术早已经不是秘密,好些厂商都能做到。但是,难就难在软件生态上。英伟达公司研发了CUDA这个并行运算库,能够将传统计算转移到GPU上进行,能够调用GPU中海量计算单元进行计算。这个创新,加速了人工智能(机器学习),特别是深度学习神经网络的计算速度,有力地推动了人工智能的发展。CUDA采用C语言进行设计,许多人都学过C语言,所以容易上手。还有,如OpenCL并行计算,采用C语言,在市场上也闯出了一片天地。
掌握人工智能,就必须要掌握算法。不断改进算法,把计算任务转移到GPU上进行,意味着CPU可以解除负担了。GPU就相当于CPU的一个非常给力的助手。在机器学习的训练场景中,需要大量的样本,GPU能够从计算机内存中高效地读取数据,避免CPU及其他硬件的介入导致延时。此外,多个GPU之间还可以交换数据,或者采用分布式的计算任务,将任务切割成小部分,分发给多个GPU去完成,这种也叫做分布式AI训练。
- 2024-08-06
-
回复了主题帖:
实现AI加速计算的第一步:CPU、GPU、以及专用加速硬件TPU等
nmg 发表于 2024-8-6 18:06
学到了,自己总结的吗?感觉把AI、CPU、GPU、TPU、NPU安排的明明白白的
感谢支持!在看了书之后,结合自己以前学习AI的心得,总结了下。
-
回复了主题帖:
#聊一聊#NVidia DGX A100 PCI-E子系统 解决SW的upstream通道成为性能瓶颈问题
这里主要是指跨服务器的GPU互访,可以通过与GPU配对的Mellanox CX6网卡实现,因为配对的网卡已经与GPU、SSD绑定在同一个组内了,因此跨服务器GPU互访的速度应该会得到提升。
-
发表了主题帖:
实现AI加速计算的第一步:CPU、GPU、以及专用加速硬件TPU等
本帖最后由 superleon123 于 2024-8-6 18:37 编辑
本人有幸得到了《大模型时代的基础架构--大模型算力中心建设指南》一书,一直想了解如何构建一个AI算力中心,所以拿到书后翻开就读了第一章 “AI与大模型时代对基础架构的需求”。该章介绍了AI的本质和需求,从最基础的AI加速硬件架构谈起,为读者铺设一个基本的概念框架。本人将书本内容结合自己以前学习机器学习知识的心得,谈谈以下几个方面:
1. AI的本质是什么?
实质上是指机器学习及推理算法。机器学习的算法已经应用到各行各业,业界目前是引领着学术界的发展。机器学习算法包括了许多种,如线性回归、决策树、支持向量机等等。算法的本质是通过多个函数逼近(最优化)来显示世界中事物的数学模型。
2. CPU运行机器学习算法的局限性。
CPU除了具有算数逻辑单元(ALU),它还带有控制单元要负责执行指令。CPU可以执行乘法和加法运算,完成向量卷积运算,但是CPU的算力是有限的,如在执行浮点数的计算时就比较弱。如果要运行深度学习算法时,单纯依靠CPU的计算能力,速度将会很慢。
3. 深度学习算法的主力引擎是GPU。
索尼的游戏机PS和任天堂的游戏机FC都引入了协处理器,这个协处理器就是GPU的前身。英伟达推出了一系列的显示卡,是游戏爱好者和图像处理者的福音,GeForce256、RTX系列等等都是经典的产品。
GPU由远超CPU中核心数量的多核心组成,非常擅长浮点数和矩阵运算,支持并行运算(如英伟达推出的并行计算产品:CUDA)。所以,深度学习主要以深层的神经网络,其计算涉及大量的卷积向量,交给GPU去完成,比单纯在CPU上运行要快得多。打个比方,在加速深度学习上,CPU与GPU,就像骑自行车的与骑摩托车的比。
4. 专门为深度学习设计的加速产品:TPU、NPU等。
传统的GPU,也叫做通用GPU(GP-GPU),既包括了图形渲染设计功能,又包括了矩阵计算功能。还有一类是去掉了图形渲染设计功能,专门为神经网络运算设计的硬件架构,如TPU (Tensor Processing Unit)、NPU(Neural Processing Unit)等,也能实现深度神经网络的加速,且功耗更小,更加专一,用于无人驾驶、图像识别、边缘计算等更具有优势。TPU的计算与CPU、GPU不同,TPU不用把计算结果保存在内存中,而是直接输出给下一步,节省了在内存中读写的时延。但是TPU是谷歌设计的产品,只有在使用谷歌的云计算功能时才有机会使用它。在这一小节,如果书中再添加对NPU的介绍,那就更好了。
- 2024-07-22
-
回复了主题帖:
读书活动入围名单:《大模型时代的基础架构:大模型算力中心建设指南》
个人信息无误,确认可以完成阅读分享计划