【LLM】大模型算力基础设施——核心硬件GPU/TPU,架构技术NVLink/RDMA,性能指标FP64/FLOPS(NVIDIA Tesla型号表)
文章目录
- 1、核心硬件GPU/TPU,NVIDIA Tesla
- 2、集群架构设计 NVLink / RDMA / Alluxio
- 3、性能关键指标,FP64 / FLOPS
1、核心硬件GPU/TPU,NVIDIA Tesla
核心硬件 chip
- GPU(图形处理器)
代表:NVIDIA A100/H100、AMD MI300X
优势:万级CUDA核心(A100含6912个核心),显存带宽达2TB/s(H100),支持TF32/FP64混合精度计算
适用场景:深度学习训练、大规模并行计算 - TPU(张量处理器)
代表型号:谷歌 v4版本达275 TFLOPS(BF16)
特点:脉动阵列架构优化矩阵运算,片上内存集成(减少数据搬运延迟) - ASIC(专用 chip )
Tesla Dojo(1.1 EFLOPS算力集群) - FPGA(现场可编程门阵列)
应用:微软Brainwave项目
优势:低延迟推理(可编程逻辑单元实现定制化计算) - CPU协同计算
AMD EPYC 9754(128核Zen4架构)
Intel Sapphire Rapids(AMX指令集加速AI)
NVIDIA 显卡型号
-
NVIDIA将显示核心分为三大系列。GeForce个人家用;Quadro专业绘图设计;Tesla大规模的并联电脑运算。 1
-
Tesla类型: 1
K-Series(Kepler架构2012):K8、K10、K20c、K20s、K20m、K20Xm、K40t、K40st、K40s、K40m、K40c、K520、K80
P-Series(Pascal架构2016):P4、P6、P40、P100
V-Series(Volta架构2017):V100
T-Series(Turing架构2018):T4
A-Series(Ampere架构2020):A10、A16、A30、A40、A100、A800
H-Series(Hopper架构2022): H20,H100,H200
L-Series(Ada Lovelace架构2023):L40,L4,L20 -
Quadro类型
NVIDIA RTX Series:RTX A2000、RTX A4000、RTX A4500、RTX A5000、RTX A6000
Quadro RTX Series:RTX 3000、RTX 4000、RTX 5000、RTX 6000、RTX 8000 -
GeForce类型:
Geforce 10:GTX 1050、GTX 1050Ti、GTX 1060、GTX 1070、GTX 1070Ti、GTX 1080、GTX 1080Ti
Geforce 16:GTX 1650、GTX 1650 Super、GTX 1660、GTX 1660 Super、GTX 1660Ti
Geforce 20:RTX 2060、RTX 2060 Super、RTX 2070、RTX 2070 Super、RTX 2080、RTX 2080 Super、RTX 2080Ti
Geforce 30:RTX 3050、RTX 3060、RTX 3060Ti、RTX 3070、RTX 3070Ti、RTX 3080、RTX 3080Ti、RTX 3090 RTX 3090Ti
Geforce 40:RTX 4090 …
Geforce 50:RTX 5090 …
显卡天梯图 :1, 2, 3 -
通用的 GPU 中包含三种核心
分别是 CUDA Core、Tensor Core 和 RT Core,这三种核心各自具有不同的特性和功能。
CUDA Core:CUDA Core 是用于通用并行计算任务的计算核心,可以执行单精度和双精度浮点运算,以及整数运算。它在处理广泛的并行计算任务方面非常高效。
Tensor Core:Tensor Core 是针对深度学习和 AI 工作负载而设计的专用核心,可以实现混合精度计算并加速矩阵运算,尤其擅长处理半精度(FP16)和全精度(FP32)的矩阵乘法和累加操作。Tensor Core 在加速深度学习训练和推理中发挥着重要作用。
RT Core:RT Core 是专门用于光线追踪处理的核心,能够高速进行光线和声音的渲染,对于图形渲染和光线追踪等任务具有重要意义
nvidia Tesla近3年型号(含A100, A800, H800, H100, H200, H20, L2, L20)
参考资料:1, 2
2、集群架构设计 NVLink / RDMA / Alluxio
集群架构设计
-
NVLink全互联(计算)
NVIDIA DGX H100:8卡通过NVLink 4.0互联(900GB/s带宽)
避免PCIe瓶颈(传统x16仅64GB/s) -
InfiniBand网络 网络
NDR 400G标准(延迟<1μs)
GPUDirect RDMA技术(数据直达GPU显存) 什么是RDMA技术 2 3 -
存储加速方案 存储
非易失内存(NVDIMM):持久化参数存储
分布式缓存(如Alluxio):加速数据管道
共享对象存储,文件存储
技术栈选型
- 计算加速库
CUDA 12.3(支持动态并行)
oneAPI 2024(统一CPU/GPU/FPGA编程) - 框架优化
PyTorch 2.3(编译式执行图)
TensorFlow Lite(稀疏化推理) - 调度系统
Kubernetes + Kubeflow(弹性扩缩容)
Slurm(超算级作业调度)
NVLink全互联技术
- NVLink是NVIDIA开发的GPU间高速互连技术,旨在突破PCIe带宽限制,实现多GPU之间的低延迟、高带宽数据交换。
- 带宽:第三代NVLink单链路达50GB/s(双向),远高于PCIe 4.0 x16(32GB/s)。
拓扑灵活性:支持全互联(All-to-All)、网状(Mesh)、混合连接。
统一内存:支持GPU显存池化(NVLink Shared Memory)。 - 全互联模式下,每块GPU通过NVLink直接与其他所有GPU相连,实现最优通信效率。
# 查看NVLink链路激活情况
nvidia-smi topo -mGPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7
GPU0 X NV12 NV12 NV12 NV12 NV12 NV12 NV12
GPU1 NV12 X NV12 NV12 NV12 NV12 NV12 NV12
...
("NV12"表示12条NVLink链路激活)# 设置环境变量启用GPU显存池化
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
export CUDA_MPS_PIPE_DIRECTORY=/tmp/nvidia-mps
export CUDA_MPS_LOG_DIRECTORY=/tmp/nvidia-log
nvidia-cuda-mps-control -d# PyTorch:自动检测NVLink,需确保数据并行时使用nccl后端。
torch.distributed.init_process_group(backend='nccl')nvidia-smi dmon -s pucvmt # 监控NVLink带宽利用率
nvidia-smi # 查看利用率,链路状态
GPUDirect RDMA技术
- GPUDirect RDMA(Remote Direct Memory Access)是NVIDIA开发的一项技术,允许第三方设备(如网卡、存储设备)绕过CPU,直接通过PCIe总线访问GPU显存,从而显著降低数据传输延迟并提升带宽利用率。
- 核心目标:消除CPU和系统内存的拷贝开销,加速GPU与外部设备(如InfiniBand网卡、NVMe SSD)间的数据交换。
- 典型应用:分布式AI训练、高性能计算(HPC)、实时数据处理。
# 安装NVIDIA驱动和CUDA
sudo apt install nvidia-driver-530 cuda-12.2
# 安装RDMA驱动(MLNX_OFED)
wget https://www.mellanox.com/downloads/ofed/MLNX_OFED-5.8-3.0.7.0/MLNX_OFED_LINUX-5.8-3.0.7.0-ubuntu22.04-x86_64.tgz
tar -xzvf MLNX_OFED-*.tgz && cd MLNX_OFED-* && sudo ./mlnxofedinstall# 启用GPUDirect RDMA:
# 检查GPU和网卡是否支持
nvidia-smi topo -m # 确认GPU与网卡是"PIX"或"PHB"连接# 加载内核模块
sudo modprobe nv_peer_mem
sudo service openibd restart# 安装支持GPUDirect的OpenMPI
./configure --with-cuda=/usr/local/cuda --with-rdma=/usr/mellanox
make -j8 && sudo make install# 运行测试(需GPU-aware MPI)
mpirun -np 2 --mca btl_openib_want_cuda_gdr 1 ./your_gpu_app# 开发
// 1. 分配GPU显存并获取IPC句柄
cudaIpcMemHandle_t handle;
void* d_ptr;
cudaMalloc(&d_ptr, size);
cudaIpcGetMemHandle(&handle, d_ptr);
// 2. 在另一进程/节点打开显存
void* remote_ptr;
cudaIpcOpenMemHandle(&remote_ptr, handle, cudaIpcMemLazyEnablePeerAccess);
// 3. 通过RDMA网卡直接读写remote_ptr(需MPI或自定义通信层)
Alluxio 技术
- Alluxio 是一个开源的 内存级虚拟分布式存储系统,充当计算框架(如Spark、Flink)和底层存储系统(如HDFS、S3、OSS)之间的抽象层。
加速数据访问:通过内存缓存、数据本地化优化,减少I/O瓶颈。
统一命名空间:整合多种存储系统(HDFS/S3/NFS等),提供透明访问接口。
数据共享:支持多计算框架(Spark/Presto/MapReduce)共享同一份缓存数据。 - LLM 训练需反复读取TB级文本数据(如Common Crawl)。
- 1.Alluxio可以加速训练数据加载
如将远程存储(如S3)的数据缓存在训练集群本地内存/SSD中,减少数据加载延迟。
同时支持预热缓存(Preload),在训练开始前主动加载数据,避免I/O等待。 - 2.可以共享中间数据
多个训练任务(如超参搜索)需共享预处理后的数据集或检查点。
提供 统一命名空间,避免数据重复拷贝到各计算节点。通过内存缓存加速检查点(Checkpoint)的读写,缩短恢复时。 - 3.混合云数据桥接
训练数据在私有HDFS,但计算集群在公有云。缓存私有数据到云上Alluxio节点,避免跨数据中心传输。
# 下载Alluxio(以2.9.3为例)
wget https://downloads.alluxio.io/downloads/files/2.9.3/alluxio-2.9.3-bin.tar.gz
tar -xzf alluxio-2.9.3-bin.tar.gz
cd alluxio-2.9.3# 配置底层存储(如S3)
cp conf/alluxio-site.properties.template conf/alluxio-site.properties
echo "alluxio.master.mount.table.root.ufs=s3://your-bucket/path" >> conf/alluxio-site.properties# 启动集群
./bin/alluxio format
./bin/alluxio-start.sh local# 预加载S3数据到Alluxio缓存
alluxio fs load /s3/dataset
# PyTorch直接读取Alluxio缓存中的检查点
checkpoint = torch.load("alluxio://master:19998/checkpoints/model.pt")# 在每台Worker节点配置缓存路径(内存+SSD)
echo "alluxio.worker.ramdisk.size=100GB" >> conf/alluxio-site.properties
echo "alluxio.worker.tieredstore.levels=2" >> conf/alluxio-site.propertiesfrom torch.utils.data import DataLoader
from alluxiofs import AlluxioFileSystem # Alluxio的POSIX接口# 挂载Alluxio为本地路径(通过FUSE)
fs = AlluxioFileSystem("alluxio://master:19998")
fs.mount("/mnt/alluxio")# 直接读取缓存数据
dataset = HuggingFaceDataset("/mnt/alluxio/dataset")
dataloader = DataLoader(dataset, batch_size=32)# 查看缓存命中率(确保热数据在内存中)
alluxio fsadmin report
3、性能关键指标,FP64 / FLOPS
算力单位:浮点运算次数 FLOPS
-
(Floating Point Operations Per Second,简称FLOPS) 是用来衡量计算设备执行浮点运算能力的指标。
这个指标通常用来描述处理器(CPU)、图形处理器(GPU)或其他计算设备在一秒钟内能够执行多少次浮点运算。
浮点运算是指能够处理带有小数点的数学运算,这对于科学计算、工程模拟、图形渣染等领域尤为重要。 -
FP(Float PerSecond) = FLOPS(Floating Point Operations Per Second)
单位:K=>M=>G=>T=>P=>E
FP32:单精度浮点(训练基线)
FP16:半精度(主流训练/推理混合精度)
FP8:NVIDIA H100新增格式(推理加速3x)
INT8/INT4:整数量化(推理专用,INT8吞吐量可达FP16的2倍)
-
精度降低
FP32 → FP16:吞吐量2x↑,精度损失<1%
FP16 → INT8:吞吐量再2x↑,需校准量化(Quantization Aware Training)
INT8 → INT4:极致压缩(适用于NLP模型如BERT)
其他指标
- PCIe带宽:
Gen4 x16 = 32GB/s(可能成为多卡互联瓶颈)
Gen5 x16 = 64GB/s(H100标配)
训练场景 vs 推理场景
- 算力密度:推理需在单位时间内完成更多请求(如自动驾驶的毫秒级响应)
- 显存容量:训练时需保留反向传播的中间结果,推理只需前向计算(如175B参数的GPT-3训练需1.6TB显存,推理仅需~80GB)
- 精度要求:推理可通过量化牺牲少量精度换取吞吐量提升(如TensorRT的INT8量化技术)
- 能效比:推理部署在边缘设备,因此需要低功耗
指标 | 训练场景要求 | 推理场景要求 |
---|---|---|
算力密度 | >50T FLOPS/卡 | >200T FLOPS/卡 |
显存容量 | 80GB+(HBM2e) | 16-48GB(GDDR6X) |
互联带宽 | 600GB/s+ | 200GB/s+ |
能效比 | <500W/TFLOPS | <100W/FLOPS |
参考资料:1, 2, 3, 4, 5