一句话:提出可被多核弹性共享的 SIMD 协处理器及编译支持,按阶段动态划分向量通道,提升利用率与性能。
该论文解决多核处理器上共运行工作负载时 SIMD 通道利用率不均的问题:计算密集型负载无法利用内存密集型负载未充分使用的 SIMD 通道,从而拉低整体性能。作者提出 Occamy,一种可被多个 CPU 核心共享的 SIMD 协处理器,其核心思想是依据不同工作负载的阶段行为,动态弹性地划分全部 SIMD 通道,使每个工作负载能够以可变长度 SIMD 模式执行。为支持这种变长向量化,论文还设计了 Occamy 编译器,用于分析阶段行为并生成适配不同向量长度的代码。评估表明,Occamy 相比三种代表性 SIMD 架构能够提高 SIMD 利用率并带来性能收益,同时芯片面积开销可忽略。
SIMD extensions are widely adopted in multi-core processors to exploit data-level parallelism. However, when co-running workloads on different cores, compute-intensive workloads cannot take advantage of the underutilized SIMD lanes allocated to memoryintensive workloads, reducing the overall performance. This paper proposes Occamy, a SIMD co-processor that can be shared by multiple CPU cores, so that their co-running workloads can spatially share its SIMD lanes. The key idea is to enable elastic spatial sharing by dynamically partitioning all the SIMD lanes across different workloads based on their phase behaviors, so that each workload may execute in variable-length SIMD mode. We also introduce an Occamy compiler to support such variable-length vectorization by analyzing such phase behaviors and generating the vectorized code that works with varying vector lengths. We demonstrate that Occamy can improve SIMD utilization, and consequently, performance over three representative SIMD architectures, with negligible chip area cost.
@inproceedings{paperbot10081,
title = {Occamy: Elastically Sharing a SIMD Co-processor across Multiple CPU Cores},
author = {Zhongcheng Zhang and Yan Ou and Ying Liu and Chenxi Wang and Yongbin Zhou and Xiaoyu Wang and Yuyang Zhang and Yucheng Ouyang and Jiahao Shan and Ying Wang and Jingling Xue and Huimin Cui and Xiaobing Feng},
booktitle = {ASPLOS},
year = {2023},
doi = {10.1145/3582016.3582046}
}