一、开场:从单核到多核的引擎革命
2010 年代之前,游戏引擎主要靠主线程驱动:
主线程(60 FPS): Frame N: AI → 物理 → 动画 → 渲染 → 显示 Frame N+1: AI → 物理 → 动画 → 渲染 → 显示 ...这种「一核跑天下」的模式让 CPU 利用率极低:
- 一帧中只有约 30% 的时间在做实际工作;
- 其他时间在「等 IO」、「等 GPU」、「等同步」;
- 大量时间在等待上一帧完成。
2010 年代后,多核 CPU 普及:
- PS4:8 核(其中 6 核可游戏用);
- PS5:8 核 Zen 2;
- Xbox Series:8 核 Zen 2;
- PC:6-32 核主流。
游戏引擎必须重新设计以利用多核。这就是Job System(任务系统)的诞生背景。
本文从并行基础、Unity DOTS、UE Task Graph、Burst Compiler 四个层面系统拆解游戏引擎的多核 CPU 利用。
二、并行计算基础
2.1 并行的三个层次
硬件并行: - 多核 CPU(多线程) - GPU(数千核心) - SIMD / SIMT(单指令多数据) 软件并行: - 多线程编程 - 任务并