Light-weight convolutional neural networks (CNNs) have small complexity and are good candidates for low-power, high-throughput inference. Such networks are heterogeneous in terms of computation-to-communication (CTC) ratios and computation patterns between layers, especially for different layer types. Yet, existing AI processors either use homogeneous processing elements (PEs), resulting in low runtime PE efficiency, or run different layers on heterogeneous PEs in sequential, introducing resource redundancy. This paper proposes a heterogeneous dual-core architecture (dual-OPU), where one core is optimized for regular convolution layers and the other for depthwise convolution layers. PEs are homogeneous with each core. To make full use of dual-core parallelism, we develop a scheduling algorithm to concurrently execute layers for different input images on dual-core and balance parallel workload. Meanwhile, we automatically tune the PE number for a core and tune the input size for each PE to maximize throughput. Compared with a single-core processor with the same area for a single network, heterogeneous dual-OPU on average improves runtime PE efficiency and throughput by 11% and 31%, respectively. For a workload of multiple networks, dual-OPU improves average throughput by 11% compared with the state-of-the-art processors scaled to the same area. To the best of our knowledge, it is the first in-depth study on the heterogeneous dual-core processor for light-weight CNNs.
翻译:轻量级神经神经网络(CNNs)的复杂程度小,并且是低功率、高通量推断的好候选人。这些网络在计算-通信比率和不同层之间的计算模式方面各不相同,特别是不同层的类型。然而,现有的 AI 处理器要么使用同质处理元素(PE),导致低运行时间PE效率,要么在相继的不同 PE 上运行不同的层次,从而引入资源冗余。本文建议建立一个多式的双核心结构(双倍-OPU),在这个结构中,一个核心优化于常规共变层,另一个优化于深度。PE 与每个核心相异。为了充分利用双核心平行性平行关系,我们制定了一个同时执行双核心和平衡平行工作量不同输入图像各层的进度算法。同时,我们将PE 数字自动调整为一个核心,并调整每个PE 的输入大小,以尽量扩大吞吐量。与同一区域的单一核心处理器相比,将双倍化 OU 平均运行时间性PE 提高每个核心区域的效率,并分别通过11 % 和31 比例的双倍化区域,将双倍性网络改进。