深度学习:CPU和GPU算力

一、算力

"算力"(Computing Power)通常是指计算机或计算系统执行计算任务的能力。它是衡量系统处理数据、运行算法以及执行计算任务效率的重要指标。根据上下文,算力可以在以下几种场景中具体化:

1. 单机算力

  • CPU算力:中央处理器的计算能力,通常用核心数量(cores)、时钟频率(GHz)、以及每秒浮点运算次数(FLOPS)等指标衡量。
  • GPU算力:图形处理单元用于并行处理的能力,尤其是在深度学习和高性能计算领域中,用CUDA核心数量、显存大小及带宽等来衡量。
  • ASIC/FPGA:为特定任务优化的硬件,比如AI芯片和比特币挖矿设备。

2. 集群算力

  • 数据中心或高性能计算(HPC)集群的整体计算能力。其算力可以通过每秒浮点运算次数(如Teraflops、Petaflops)来描述。
  • 包括分布式计算资源的集成,例如云计算平台(如AWS、Azure、Google Cloud)。

3. 深度学习算力

  • AI和机器学习训练中常用算力指标。大模型训练任务通常用GPU集群(如NVIDIA A100)的规模来描述。
  • 算力需求可能包括参数量(parameters) 、数据集规模 和训练时间。

4. 边缘算力

  • 边缘设备(如嵌入式系统、智能传感器)的计算能力,通常能效比(算力/功耗)是关键指标。

5. 单位和指标

  • FLOPS(每秒浮点运算次数):通常用于衡量CPU/GPU的性能。
  • TOPS(每秒万亿次运算):在AI硬件中较常用。
  • 能耗比(Perf/Watt):表示计算能力与功耗的关系。

在你的工作领域(如LiDAR、雷达、计算机视觉等),算力需求可能用于:

  • 处理实时数据流(如点云、视频流)。
  • 实现复杂的AI推理任务(如目标检测、轨道识别)。
  • 优化高精度地图的构建和更新流程。

二、CPU算力

CPU算力通常用浮点运算能力(FLOPS, Floating Point Operations Per Second)来衡量,尤其在科学计算、高性能计算(HPC)和人工智能领域。

计算公式

CPU算力(理论峰值性能)可以通过以下公式计算:

FLOPS = CPU 核心数 × 每个核心的时钟频率(Hz) × 每个周期执行的浮点运算数 \text{FLOPS} = \text{CPU 核心数} \times \text{每个核心的时钟频率(Hz)} \times \text{每个周期执行的浮点运算数} FLOPS=CPU 核心数×每个核心的时钟频率(Hz)×每个周期执行的浮点运算数

1. 核心数(Number of Cores)
  • CPU内的物理核心数量。
  • 如果支持超线程(Hyper-Threading),则逻辑核心数可以是物理核心数的两倍,但计算算力时通常只考虑物理核心。
2. 时钟频率(Clock Frequency)
  • 以 GHz 表示(1 GHz = 1 0 9 10^9 109 Hz)。
  • 表示每秒钟一个核心的主频振荡次数。
3. 每周期浮点运算数(Operations per Cycle)
  • CPU的指令集架构(如 x86, ARM)决定了每周期可执行的浮点运算数。
  • 常见架构:
    • 标量运算:1 FLOP/周期。
    • SIMD 指令集 (如 AVX, AVX-512):多个浮点数并行处理。
      • AVX2:256位寄存器,最多处理 8 个单精度或 4 个双精度浮点数。
      • AVX-512:512位寄存器,最多处理 16 个单精度或 8 个双精度浮点数。

示例:Intel i7-1255U 计算理论峰值算力

  1. 核心数 :10(2 性能核心 + 8 效率核心)。
    • 性能核心支持更高频率和更复杂的指令集。
    • 效率核心主要执行简单任务。
  2. 时钟频率 :
    • 性能核心:最高 4.7 GHz。
    • 效率核心:最高 3.5 GHz。
  3. 浮点运算数(AVX2指令集) :
    • 性能核心:8 单精度 FLOP/周期。
    • 效率核心:4 单精度 FLOP/周期。

单个核心算力(性能核心) :
FLOPS = 4.7   GHz × 8   FLOP/周期 = 37.6   GFLOPS \text{FLOPS} = 4.7 \, \text{GHz} \times 8 \, \text{FLOP/周期} = 37.6 \, \text{GFLOPS} FLOPS=4.7GHz×8FLOP/周期=37.6GFLOPS

所有核心总算力 :
FLOPS(理论峰值) = ( 2 × 37.6 + 8 × ( 3.5   GHz × 4 ) )   GFLOPS = 75.2 + 112 = 187.2   GFLOPS \text{FLOPS(理论峰值)} = (2 \times 37.6 + 8 \times (3.5 \, \text{GHz} \times 4)) \, \text{GFLOPS} = 75.2 + 112 = 187.2 \, \text{GFLOPS} FLOPS(理论峰值)=(2×37.6+8×(3.5GHz×4))GFLOPS=75.2+112=187.2GFLOPS


实际算力

理论算力往往高于实际算力,受限于:

  • 内存带宽:数据加载速度不足以满足CPU吞吐需求。
  • 分支预测失败 或流水线阻塞。
  • 非浮点运算占比,例如整数运算、条件判断。
  • 散热与功耗限制:特别是移动设备(如笔记本)。

可以通过性能测试工具(如 LINPACK 或 Cinebench)测量实际算力。

三、GPU算力
GPU算力是衡量图形处理器在并行计算中执行浮点运算能力的重要指标,通常以**每秒浮点运算次数(FLOPS, Floating Point Operations Per Second)**表示。

GPU算力计算公式

FLOPS = CUDA 核心数 × 每个核心的时钟频率(Hz) × 每周期执行的浮点运算数 × 流水线数(Pipeline Count) \text{FLOPS} = \text{CUDA 核心数} \times \text{每个核心的时钟频率(Hz)} \times \text{每周期执行的浮点运算数} \times \text{流水线数(Pipeline Count)} FLOPS=CUDA 核心数×每个核心的时钟频率(Hz)×每周期执行的浮点运算数×流水线数(Pipeline Count)


计算步骤

1. CUDA 核心数
  • 表示 GPU 中的并行计算单元数量。
  • CUDA 核心数通常是 SM(Streaming Multiprocessor)中单元数的总和。例如,NVIDIA 的 GPU 具有多个 SM,每个 SM 包含多个 CUDA 核心。
2. 时钟频率
  • GPU 的核心时钟频率,通常以 GHz 表示(1 GHz = 1 0 9 10^9 109 Hz)。
  • GPU 的 Boost Clock 表示其在性能负载下的最高频率。
3. 每周期浮点运算数
  • 具体取决于 GPU 的架构和支持的精度。
  • 常见精度:
    • FP32(单精度):主流深度学习任务使用。
    • FP64(双精度):高精度科学计算。
    • FP16(半精度)或 INT8:用于深度学习加速。
  • 例如,在 NVIDIA Ampere 架构中,FP32 每周期支持 2 个浮点操作。
4. 流水线数
  • 高性能 GPU 使用多条指令流水线以提高并行处理能力。例如,NVIDIA Ampere 架构中每个 CUDA 核心有两条执行流水线。

示例:NVIDIA A100 计算理论峰值算力

参数:
  • CUDA 核心数:6,912。
  • 时钟频率:1.41 GHz。
  • 每周期浮点运算数(FP32):2。
  • FP32 理论算力:

FLOPS = 6 , 912 × 1.41   GHz × 2 = 19 , 468.32   GFLOPS = 19.47   TFLOPS \text{FLOPS} = 6,912 \times 1.41 \, \text{GHz} \times 2 = 19,468.32 \, \text{GFLOPS} = 19.47 \, \text{TFLOPS} FLOPS=6,912×1.41GHz×2=19,468.32GFLOPS=19.47TFLOPS

FP64 和 FP16 算力:
  • FP64(双精度):FP32 算力的 1/2。
    FP64 FLOPS = 19.47   TFLOPS ÷ 2 = 9.735   TFLOPS \text{FP64 FLOPS} = 19.47 \, \text{TFLOPS} \div 2 = 9.735 \, \text{TFLOPS} FP64 FLOPS=19.47TFLOPS÷2=9.735TFLOPS
  • FP16(半精度):FP32 算力的 2 倍。
    FP16 FLOPS = 19.47   TFLOPS × 2 = 38.94   TFLOPS \text{FP16 FLOPS} = 19.47 \, \text{TFLOPS} \times 2 = 38.94 \, \text{TFLOPS} FP16 FLOPS=19.47TFLOPS×2=38.94TFLOPS

实际算力

理论算力是 GPU 的上限,实际性能通常受以下因素影响:

  1. 内存带宽:数据吞吐能力不足可能限制算力。
  2. 指令调度:不均衡任务可能导致部分核心闲置。
  3. 散热与功耗:性能可能受限于温控策略。
  4. 编程优化:代码是否充分利用并行计算能力。

测试工具如 CUDA SDK , TensorRT,或基准测试工具(如 Geekbench 和 SPECviewperf)可用于测量实际 GPU 算力。

相关推荐
henrylin999925 分钟前
RD-AGENT 第一讲 · AI 因子工厂是怎么运转的
人工智能
高洁0136 分钟前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
无线通信科研笔记38 分钟前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
Devlive 开源社区42 分钟前
AuthX 正式更名 GrantForge:我们重新做了一遍权限管理系统
大数据·人工智能·架构
朝朝辞暮i1 小时前
VLA 系统学习第 1 课:VLA 到底在干什么?
人工智能·python·计算机视觉·vla
鲲穹AI种草1 小时前
AI 壁纸生成工具怎么选?鲲穹 AI 壁纸工具功能实测与横向对比
人工智能·壁纸生成工具
科技林总1 小时前
向量与重排模型
人工智能
楚楚2511 小时前
2026企业AI办公工具选型指南:落地评估与效果衡量体系
大数据·人工智能
小马9261 小时前
2026年9月30日热点速览:AI智能体大战升级、房贷贴息新政落地、硬科技多点突破
人工智能·科技·chatgpt
SPFFC189380330531 小时前
旋翼式水表工作原理智能水表工作原理
人工智能·显示器·智能手表·平板·大屏端