前沿计组知识入门(五)

深度学习硬件加速

深度学习硬件系统

  • 硬件类型
    • CPU:通用处理器,适合复杂控制流程序,具有较低的核心数和线程数,适合处理需要复杂逻辑和低延迟的任务。
    • GPU:高度并行的处理器,专为并行计算设计,支持高带宽内存系统,适用于大规模数据处理和并行任务。
    • ASIC(Application-Specific Integrated Circuit):专用集成电路,为特定应用设计,如TPU(Tensor Processing Unit)和Eyeriss,具有高效能但灵活性较低。
    • Systolic Array:由ALU或处理单元(PE)组成的阵列,数据在阵列中流动,每个PE计算结果的一部分并传递数据,与主机配对以决定操作。
    • NVDLA(NVIDIA Deep Learning Accelerator):为深度学习模型设计的自定义加速器,适用于推理任务,支持特定数据类型(如int8、int16、fp16)。
    • SoCs(System on Chips):单个芯片上集成多种计算引擎(CPU、GPU、加速器),共享内存系统,常用于边缘设备。

性能指标

  • 延迟(Latency):完成操作所需的时间。
  • 吞吐量(Throughput):单位时间内完成的工作量。
  • 能效(Energy Per Operation):完成操作所需的平均能量。
  • 功率(Power):能量使用速率。
  • 每瓦性能(Perf per Watt):每瓦特的性能指标,衡量效率。
  • 计算带宽(Compute Bandwidth):单位时间内的操作数。
  • 计算带宽利用率(Compute Bandwidth Utilization):达到的峰值计算带宽的分数。
  • 内存带宽(Memory Bandwidth):单位时间内的字节数。
  • 内存带宽利用率(Memory Bandwidth Utilization):达到的峰值内存带宽的分数。
  • 算术强度(Arithmetic Intensity):每获取一个字节所需执行的FLOPs数,与数据重用相关。

性能优化工具和方法

  • TensorRT:NVIDIA的工具,用于优化网络,将其转换为int8格式,合并常见操作以避免内核启动开销,探索更高效的层操作方式,释放未使用的内存,并优化RNN的时间步扩展。
  • Nsight Systems:提供系统级信息,如定时性能、内存带宽、Tensor核心利用率等。
  • Nsight Compute:提供内核级信息,如内核FLOPs、内存使用、SM占用率等。
  • NVTX Regions:允许在代码中插入命名区域,Nsight工具可以理解这些区域,帮助定位需要改进的区域。

性能估计和理解

  • 性能估计:通过计算FLOPs、内存带宽和计算带宽来估计性能。
  • 性能限制:操作可能是内存限制或数学限制,取决于计算单元和内存带宽的利用率。
  • 性能优化提示:针对计算带宽限制、内存带宽限制以及两者都受限的情况,提供了优化建议,如改变数值格式、使用结构化稀疏性、使用专用硬件等。

大规模模型和联邦学习的机器学习(ML)系统

1. AI和ML模型规模的增长

  • 模型复杂性和数据规模的增长:训练最先进的模型(SOTA)的计算成本每3.4个月翻倍。
  • 挑战
    • 需要大量的计算、内存、通信和用户专业知识。
    • 训练大型模型(如100B+参数的语言模型)需要数十年的时间和巨大的计算资源。

2. 计算、内存和通信的挑战

  • 计算挑战:训练大型模型需要数十年时间,即使是价值20万美元的机器也无法满足需求。
  • 内存挑战:大型深度学习模型的中间状态(activations)通常比参数大5倍以上,导致单个GPU内存不足。
  • 通信挑战:不同机器之间的网络通信速度相对较慢,尤其是在传输大型Transformer网络的梯度时。

3. 并行和分布式学习的背景

  • 迭代收敛(Iterative-Convergent, IC)ML程序:ML程序通常具有迭代收敛的特性,这为并行化提供了机会。
  • 并行化的三个维度
    • 数据并行:将数据分割到不同的设备上。
    • 模型并行:将模型参数分割到不同的设备上。
    • 流水线并行:将模型的不同层分配到不同的设备上。

4. 并行硬件环境

  • 多线程:在单个设备(如CPU或GPU)内实现并行。
  • 多设备:在同一个机器上的多个GPU之间实现并行。
  • 多节点:在多个机器之间通过网络实现并行。

5. 并行ML程序的指标

  • 吞吐量(Throughput):每单位时间处理的训练数据量。
  • 统计效率(Statistical Efficiency):每单位训练数据的收敛进度。
  • Goodput:吞吐量和统计效率的乘积,表示有用的吞吐量。

6. 并行ML策略

  • 参数服务器(Parameter Server):一种常见的并行策略,适用于数据并行。
  • 环形全归约(Ring All-Reduce):另一种数据并行策略,适用于分布式环境。
  • 混合并行策略:结合多种并行策略(如数据并行和模型并行)以克服单一策略的局限性。

7. 自动化混合并行策略

  • Alpa系统:一个自动化的系统,通过层次优化来寻找最佳的跨操作符(Inter-op)和内操作符(Intra-op)并行策略。
    • 跨操作符并行:将计算图分割并分配到不同的设备上。
    • 内操作符并行:在单个操作符(如矩阵乘法)内实现并行。

8. 关键结论

  • 并行策略的选择:不同的并行策略适用于不同的场景,需要根据模型结构、硬件环境和通信需求进行选择。
  • 自动化的重要性:自动化工具(如Alpa)可以显著简化并行策略的设计和实现,提高系统的Goodput。

9. 参考文献

  • 文件中引用了多个研究和系统,如PolluxAlpa等,展示了当前在并行和分布式ML系统领域的最新进展。

这份教程提供了对大规模模型和联邦学习中ML系统设计的深入分析,强调了并行化策略的重要性和自动化工具的潜力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值