跳转至

04 ALU、FPU 与 Tensor Core 微架构

1. 混合计算流水线构成与吞吐量

现代 SM 内部集成了多种异构计算流水线,由 Warp Scheduler 按指令类型发射到不同物理流水线上:

graph TD
    Issue["Warp Issue Unit (每个周期分派 1~2 条指令)"]
    Issue --> FP32_Pipe["FP32 ALU 流水线 (每周期 16 FMA = 32 FLOPs)"]
    Issue --> INT32_Pipe["INT32 ALU 流水线 (地址计算与标量操作)"]
    Issue --> FP64_Pipe["FP64 双精度单元 (科学计算 DP 流水线)"]
    Issue --> SFU_Pipe["SFU 单元 (rsqrt, exp, log, sin/cos 逼近)"]
    Issue --> Tensor_Pipe["Tensor Core MMA 矩阵计算阵列 (Dense Matrix Multiply)"]

    FP32_Pipe --> RF_WB["写回寄存器堆 (Register File Write-Back)"]
    INT32_Pipe --> RF_WB
    FP64_Pipe --> RF_WB
    SFU_Pipe --> RF_WB
    Tensor_Pipe --> RF_WB

2. Tensor Core 硬件矩阵乘架构 (以 4 代 MMA 为例)

Tensor Core 突破了传统的 SIMT 标量发射,单个指令即可让整个 Warp 协同完成一个小矩阵乘法: $\(D = A \times B + C\)$

graph LR
    subgraph WarpMMA["Warp 级协作 (16x16x16 MMA)"]
        MatrixA["Matrix A: 16x16 FP16/FP8 (沿 Row 切分给 32 Lane)"]
        MatrixB["Matrix B: 16x16 FP16/FP8 (沿 Col 切分给 32 Lane)"]
        MatrixC["Accumulator C: 16x16 FP32/FP16"]

        MAC_Array["Tensor Core 4x4 密集脉动乘加阵列"]

        MatrixA --> MAC_Array
        MatrixB --> MAC_Array
        MatrixC --> MAC_Array
        MAC_Array --> MatrixD["Output Matrix D: 16x16 FP32"]
    end

Tensor Core 的算力密度达到传统 FP32 ALU 的 8~16 倍,是现代 LLM 训练与推理最核心的算力来源。