CUDA Core 是通用计算单元,Tensor Core 是矩阵运算专用单元,二者协同支撑机器学习全流程计算。
CUDA Core vs CPU Core
| 维度 | CPU Core | CUDA Core |
|---|---|---|
| 设计目标 | 单线程速度、通用性 | 并行吞吐量 |
| 核心数量 | 2-64 个 | 数千个 |
| 调度方式 | 独立工作 | warp(32 线程)集群调度 |
| 适用场景 | 分支密集、串行任务 | 密集型并行计算 |
SM(流式多处理器):CUDA Core 以 SM 为单位集群部署,共享内存和指令调度器。
Tensor Core 核心原理
专用设计:硬件固化矩阵乘累加逻辑(D = A×B + C),每个 Tensor Core 完成 4×4×4 矩阵运算。
| 精度 | 特点 |
|---|---|
| FP16/BF16 | 训练标准精度 |
| FP8 | Hopper 架构原生支持 |
| INT8/INT4 | 推理量化加速 |
协同逻辑:Tensor Core 负责矩阵运算,CUDA Core 负责预处理、后处理、激活函数。
训练与推理调用
| 场景 | 主导核心 | 精度 |
|---|---|---|
| 模型训练 | Tensor Core | FP16/BF16/TF32 |
| 模型推理 | Tensor Core | INT8/FP8 |
| 科学计算 | CUDA Core | FP64 |
显卡参数对比
| 型号 | CUDA Core | Tensor Core | 架构 |
|---|---|---|---|
| RTX 4090 | 16384 | 512 | Ada Lovelace |
| A100 | 6912 | 432 | Ampere |
| H100 | 16896 | 1328 | Hopper |
FLOPS 计算
CUDA Core:
$$\text{TFLOPS} = \frac{\text{核心数} \times \text{频率} \times 2 \times \text{效率系数}}{1000}$$
Tensor Core:
$$\text{TFLOPS} = \text{核心数} \times \text{每周期运算次数} \times \text{频率} \times \text{精度系数}$$
选型建议
- 个人开发者:RTX 4090(高性价比,支持 INT4)
- 大规模训练:A100/H100(大显存、高带宽)
- 推理部署:A10(成本低,INT8 支持)
张芷铭的个人博客
Comments