知识卡片

功能并行与数据并行的取舍

专业/工作 · 1081

内容

并行化一个处理流程有两种基本思路:功能并行(流水线型)把流程拆成不同职责的模块分给不同运算单元,各模块间靠数据流串接,容易实现但天然存在负载不均——重的模块拖慢整条流水线,扩展时还要重新划分模块;数据并行把同一段处理逻辑复制到多个运算单元,只是各自处理独立的数据切片,不需要单元间通信,运算单元数目和数据切片数量解耦,扩展性和负载均衡都远好于功能并行。H.265/HEVC解码器把熵解码和后续预测/变换/滤波拆成两级功能流水线,再在每一级内部对数据切片(Tile/CTB行)做数据并行,混合使用两种模式——先用少量粗粒度的功能并行处理有严格顺序依赖的部分,再在能拆分数据的地方尽量用数据并行摊开负载。

参考来源

《新一代高效视频编码H.265/HEVC:原理、标准与实现》第10章《编解码并行处理》