核间负载均衡
【优先级】:中
【描述】AI处理器的物理核数是固定的,当L2Cache切分之后,可能发生部分核有计算拖尾的情况,即每次所有核计算量除以每个核处理的数据量不能被核数整除,导致最后需要部分尾核来计算尾块数据。而在尾核计算时,部分核始终处于空闲状态,从而使得算子的整体性能变差。如图1,假设总的数据量为TotalSize,L2Cache切分之后分为两份TotalSize / 2,每个核每次的计算量为TotalSize / 2 / 25,即需要25个核进行处理,由于AI处理器的核数为20,因此每次计算时,1到5核的每个核需要多算一份数据,导致发生拖尾的情况。
【反例】
【正例】
针对上述切分策略,调整拖尾核的位置后可以达到全局负载最优,如图2所示。完成所有计算时,1到10核多一次数据块的计算,可以实现全局负载最优。
父主题: Tiling优化