硬件设施
比特币出现后算力逐渐走到台前,比特币挖矿的衡量标准是哈希率 hash rate,每秒能计算多少个哈希值。
AI 大模型的深度学习模型基于神经网络结构,计算过程可以被视为大量矩阵计算的组合。NVIDIA 在 2007.06 推出 CUDA compute unified device architecture,提供 GPU 并行计算平台和编程模型,充分利用 GPU 的并行计算能力,加速模型训练。在 2017 推出 Tensor Cores 的计算单元,有专门的电路设计,用于执行深度学习中的矩阵乘法和卷积等张量运算,进一步提高计算效率。
影响 GPU 算力的重要组成部分:
- CUDA Cores,通用计算单元,主要用于执行标准的浮点运算,被设计用于高并发的数据并行计算;
- Tenser Cores,张量专用执行单元,执行矩阵乘法和累加操作,专门为深度学习而设计;
- 显存,临时存储 GPU 要处理的数据和处理完毕的数据;
- 显存带宽,芯片与显存之间的数据传输速率,单位是 byte/second;
- NVlink,Nvidia 推出的一种高速连接技术,用于连接多块 GPU 之间的数据传输,PCle 的传输速度达到 16GB/s,NVlink 2.0 达到 300GB/s,同时 NVlink 支持访问其他 GPU 上显存,大幅提高多 GPU 系统的性能和效率。
算力设施
算力基础设施最关键的是算力分配问题,GPU 单卡算力越来越强,也越来越贵,按卡分配会导致大量资源浪费,多任务训练在一张显卡上并行越来越重要。
Nvidia 推出了 vGPU 软件,支持在一块物理 GPU 创建许多小型虚拟 GPU,供给给不同任务使用。物理硬件虚拟化核心是存储和运算的虚拟化,存储通过创建专用 BUF dedicated framebuffer 事先占据虚拟 GPU 的存储空间,计算通过时间片管理器 scheduling 控制任务对 GPU 物理设备引擎的使用时间。
这样的方式引发了两个问题,一个是安全和资源分配的平衡存在局限,另一个是物理卡切分隔离会带来很多资源浪费。Nvidia 在 2020 推出了 Ampere 架构芯片,最著名的是 A100,该架构可以通过硬件上的设计使得 GPU 能够创建子 GPU(GPU Instance, GI),通过对系统总线、控制总线、算力单元、全局显存、L2 Cache、数据总线等的切分重组,实现每个 GI 的数据保护、故障隔离和服务稳定。
算力最终通过 K8S 集群的编排能力落地,需要一个健壮的能支持高并发访问的 API Server,一个能支持高带宽拉取模型镜像的网络系统,同时建设一个高可用高带宽的容器网络。
高性能计算
模型越大,数据量越大,训练周期越长,分布式训练已经成为常态,通信带宽往往是限制算力提升的瓶颈。HPC high performance computing 是用来解决这个问题的,一般要优化服务器内部的通信和服务器间的网络,服务器内部通信优化主要解决通信拥塞问题,服务期间通信主要通过 RDMA remote direct memory access 网络提供同样的分布式多机多卡的集合通信能力。