

特点 |
16 小上下文 |
4 大上下文 |
线程数 |
16 |
4 |
每线程存储 |
小 |
大 |
延迟隐藏能力 |
强(很多线程可切换) |
弱(线程少,容易 stall) |
适合场景 |
GPU、吞吐量导向,高并发、轻量任务 |
CPU、延迟敏感任务,单线程更复杂计算 |
多线程处理器可以避免 stall(停顿):
当一个线程因为 高延迟操作(比如内存访问) 卡住时,处理器可以调度其他线程的指令来继续执行。
注意:多线程 并不会减少内存操作的延迟,只是让 CPU 不会闲着,保持高利用率。
例子:

🔑 总结
- CPU(少线程,大上下文):老师带少数学生,每个学生能处理比较复杂的问题,但当学生都卡住时,老师就闲置了。
- GPU(多线程,小上下文):老师带很多学生,虽然每个学生能处理的能力有限,但总有人能继续回答问题,老师利用率最高。

Kayvon’s fictitious multi-core chip
- 16 cores
- 8 SIMD ALUs per core(共 128 个 ALU)
- 每个核心有 8 个 SIMD ALU(算术逻辑单元)。
- SIMD(Single Instruction Multiple Data)表示:同一个指令可以在多个数据上并行执行。
- 总计:16 × 8 = 128 个 ALU。
- 4 threads per core
- 每个核心可以同时管理 4 个线程。
- 总计:16 × 4 = 64 个线程。
- 16 simultaneous instruction streams
- 每个核心 1 个指令流(instruction stream)。
- 总计 16 个指令流。
- 64 total concurrent instruction streams
- 因为每个核心可以管理 4 个线程,所以是 64 个并发的指令流。
- 512 independent pieces of work needed for maximal latency hiding
- 要让整个芯片保持完全“忙碌”,需要有 512 个独立任务。
- 计算方式:
- 16 cores × 4 threads × 8 SIMD lanes = 512。
- 也就是说,如果任务数不够,ALU 或线程会空闲,不能充分利用芯片。
🔑 总结